简单的用类来表示:数据:父类 Father
子类 Son1 ,  son2 ,  son3,.....sonN.
数据载体:
 Bean 类用来成装数据
 方法 public Father getdata();
 变量 String  class_name="包名.子类名" 数据结构:
 beanList<Bean>需求: 
 当我调用Bean 的getData方法时 我想通过判断 class_name的值来 强制转换成相应的子类类似于  Son1 son1=(参数--子类名) bean.getData();
也就时说 我想 动态的进行强制转换 请大侠们出手相助. 

解决方案 »

  1.   

     if("Son1".equals(参数--子类名)){
      Son1 son1=(Son1) bean.getData(); 
    }else if (){...
      

  2.   

    反射出来的对象所申明的类型也是Object类的,所以我觉得反射也不能解决动态强制转换的问题
    只能自己申明对象的类型了,所以能用多态尽量还是不要强制转换了
      

  3.   

    反射是根据名字动态加载类,得到实例。这个情况是,已经有实例了,但要动态向下转型,只能考虑if-else或者工厂. 
      

  4.   

    建议用工厂或if-else吧!
    反射不推荐使用!
      

  5.   


    if(obj instanceof Son ){
    return (Son)obj;
    }楼主是否想这样?
      

  6.   

    我的设计思路
    项目里要实现一个树由树来触发右边的显示床体
    现在的问题是树上的节点种类N多如果都要用if语句来判断的话代码量太庞大了 
    所以想做一个动态加载的机制大体想法是
    在bean里加入两个变量
    一个是      子类数据的类名(String)
    另一个是    显示该子类的窗体的类名(String)
    这样当我点击树节点触发事件时
    先根据"显示该子类的窗体的类名(String)" 来生成窗体对象
    然后将数据转成相应子类插入到窗体中
    在将窗体set到右边的显示窗体中.over
      

  7.   

    看不出这么设计的好处。
    多态不代表if else
    你既然抽象到父类的层次, 为什么还要向下转型回来?
      

  8.   

    我要用到子类的变量当我调用Bean 的getData方法时 我想通过判断 class_name的值来 强制转换成相应的子类