我必须将Java对象转换为子类,因为需要在子类中可用的方法上设置指标,然后在列表中设置Super类对象。

当我从列表中取出对象时,我是否需要在两者之间做任何事情,或者在类型转换后设置的指标会反映出来?

MemRow是父类,而MemAttrRow是具有新属性recstat的子类;
代码如下:

  MemRow memRow;
   List<MemRow> memRwList;//where the superclass will get added
   // type cast to subclass memAttrRow and set the recstat
     MemAttrRow memAttrRow = (MemAttrRow) memRow;
     String ind= "A";
     memAttrRow.setRecStat(ind);
  //add superclass to the list
     memRwList.addRow(memRow);

最佳答案

您无需执行其他任何操作。假设memRow确实是MemAttrRow的一个实例,则在设置其属性时,将在将对象添加到列表等操作中保留它。

但是,值得一提的是,在键入强制对象或获取MemAttrRow之前,必须确保对象的实际(运行时)类型为ClassCastException

07-25 22:45