1. 最简单的办法就是用if else
if("A".equals(className)) {
 A a = (A) list.get(i);
}
else if ("B".equals(className)) {
 B b = (B) list.get(i);
}2. 如果你只是要获取对象中的某些属性,可以用BeanUtils

解决方案 »

  1.   

    用泛型
    Class<T> type;
    type bm = ...
      

  2.   

    Class.forName(className).newInstance();
      

  3.   

    String BMA = "java.lang.String";
            Object o = new String("hello world"); //假设有一个对象o,你不知道它的类型
            
    //直接判断
     if(BMA.equals("String")){
                String oo = (String)o;
            }
    else if(BMA.equals("Data")){
      ……
    }
          
    或者用下面的方法,调用类的构造函数新建一个对象
      try {
                Constructor[] cc = Class.forName(BMA).getConstructors();
                for(int i = 0; i < cc.length; i++){
                    System.out.println("构造函数:" + i + cc[i].toString());
                }
                
                //调用public java.lang.String(java.lang.String)
                String oo = cc[7].newInstance(new Object[]{o});        } catch (Exception e) {
                e.printStackTrace();
            }