由于我的主页需要 通过查询数据库中多个表信息 而且也希望实现良好的扩展性 所以 我希望当前台发过来请求获取数据库信息的时候后台可以通过扫描一个类里面的属性来获得需要查询的表 首先 我已经实现了第一步 我用反射机制来扫描这个类里面的属性 然后通过属性来编写SQL语句进行查询 现在我的问题是从数据库读出的信息存在一个List里面 我想实现管理层在接收的时候 可以通过上面的查询出来的属性自动去创建一个符合这个这个结果的List泛型 我现在的难题是创建List<E>的时候 这个E怎么自动指定 我不想通过if判断属性然后把代码写死 我想知道能不能通过反射机制 自动获取扫描类里面属性的类型 然后把个类型放在这个E里面 实现自动的创建需要的类型 能不能把E设置成一个变量的形式List泛型反射机制动态list泛型
E 成员变量;
List<E> 名字;
}楼主看看这样可以吗?
@SuppressWarnings("unchecked")
public static <T> List<T> convert(List<?> list, Class<T> type) {
return (List<T>)list;
}
public static List<?> newList() {
List<Student> students = new LinkedList<Student>();
students.add(new Student("abc"));
students.add(new Student("xyz"));
return students;
}
public static void main(String[] args) {
List<?> list = newList();
List<Student> students = convert(list, Student.class);
for (Student s : students)
System.out.println(s.getName());
}
}class Student {
private String name;
public Student(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}