,可以通过遍历List<Class>中的每个元素,然后获取每个元素的property属性值,将这些属性值组成一个新的List<Class.property>。
具体步骤如下:
下面是一个示例代码:
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("Alice", 18));
students.add(new Student("Bob", 20));
students.add(new Student("Charlie", 22));
List<String> names = convertToPropertyList(students, "name");
System.out.println(names); // 输出:[Alice, Bob, Charlie]
List<Integer> ages = convertToPropertyList(students, "age");
System.out.println(ages); // 输出:[18, 20, 22]
}
public static <T, P> List<P> convertToPropertyList(List<T> list, String propertyName) {
List<P> result = new ArrayList<>();
try {
for (T item : list) {
Field field = item.getClass().getDeclaredField(propertyName);
field.setAccessible(true);
P propertyValue = (P) field.get(item);
result.add(propertyValue);
}
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
return result;
}
static class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}
在上述示例代码中,我们定义了一个Student类,包含name和age两个属性。通过调用convertToPropertyList
方法,可以将List<Student>转换为List<String>或List<Integer>,分别获取name和age属性的值。
这个转换过程可以应用于各种场景,例如从数据库查询结果中提取特定属性,或者对某个属性进行统计分析等。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云