我必须将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
。