【发布时间】:2012-06-28 20:04:11
【问题描述】:
我试图了解当有人将一个特定类的对象投射到另一个类时会发生什么。即有两个类
public class Aclass{
private String attribute1;
private List<String> attribute2;
//get/set methods
}
public class Bclass{
private String attribute1;
private List<int> attribute2;
//get/set methods
}
现在在另一个类中我有这两个对象,然后我将它们转换。
public class Cclass{
Aclass aclass=new Aclass();
//returneddata is a method that returns an Aclass object that contained dta for the Aclass attributes
aclass=returneddata();
Bclass bclass=new Bclass();
bclass=Bclass.class.cast(aclass);
}
从前面提到的类中,我得到了一个 java.lang.ClassCastException。
问题是我有两个类,每个类不只包含两个属性,而是同时包含 20 个属性。这 16 个属性在两个类中都很常见。
此外,returneddata 方法返回从存储库检索的对象。如您所见,我想找到一种方法并将对象 Aclass 的 16 个数据属性传输到对象 Bclass。
我想要:
1) 想办法将16个通用属性数据从一个对象重写到另一个对象
2) 演员阵容的总体运作方式
有什么建议吗?
【问题讨论】:
-
这样做的目的/目标是什么?有很多方法可以做你想做的事,但最好的方法取决于你的意图。
-
那你在问什么?您是否想弄清楚为什么会出现类转换异常?
-
但是投射肯定不能以这种方式工作。强制转换基于两个类之间的显式
is a关系,而不是公共属性。
标签: java oop inheritance casting