话不多说上代码:
定义类型 Person 包含 name ,age 两个属性
定义泛型类DataList 包含 list<T> 泛型属性
测试方法 传入 DataList 类型的参数
遍历DataList 的list
public class Test {
public static void main(String[] args) throws IllegalAccessException {
List<Person> lists = new ArrayList<>();
lists.add(new Person("zhangsan", 28));
lists.add(new Person("lisi", 29));
DataList<Person> personDataList = new DataList<Person>();
personDataList.setLists(lists);
Test.getTData(personDataList);
}
public static void getTData(DataList dl) {
// 获取泛型类型的自定义的所有属性字段
if(dl==null||dl.getLists()==null||dl.getLists().size()==0){
return;
}
Field[] fields = dl.getLists().get(0).getClass().getDeclaredFields();
//遍历泛型list
dl.getLists().stream().forEach(o->{
Arrays.stream(fields).forEach(f->{
String name = f.getName();
//获取属性值
Object value = null;
try {
value = f.get(o);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println("name:"+name+" value:"+value.toString());
});
});
}
}
@Data
@AllArgsConstructor
class Person {
String name;
int age;
}
@Data
class DataList<T> {
List<T> lists;
}
属性输出完毕