由于我的主页需要 通过查询数据库中多个表信息 而且也希望实现良好的扩展性 所以 我希望当前台发过来请求获取数据库信息的时候后台可以通过扫描一个类里面的属性来获得需要查询的表 首先 我已经实现了第一步 我用反射机制来扫描这个类里面的属性 然后通过属性来编写SQL语句进行查询 现在我的问题是从数据库读出的信息存在一个List里面 我想实现管理层在接收的时候 可以通过上面的查询出来的属性自动去创建一个符合这个这个结果的List泛型 我现在的难题是创建List<E>的时候 这个E怎么自动指定 我不想通过if判断属性然后把代码写死 我想知道能不能通过反射机制 自动获取扫描类里面属性的类型 然后把个类型放在这个E里面 实现自动的创建需要的类型 能不能把E设置成一个变量的形式List泛型反射机制动态list泛型

解决方案 »

  1.   

    自己定义一个类 类名<E> {
       E 成员变量;
       List<E> 名字;
    }楼主看看这样可以吗?
      

  2.   

    动态 = 运行时运行时 = 使用泛型没有意义直接反射即可,有(编译时)已知接口的话可以cast。
      

  3.   

    没太读懂楼主的需求,下面这段代码也许能对你有所帮助public class Test {

    @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;
    }
    }