1,无法实现强制转换,会报ClassCastException,强制转换只能在有继承关系的类之间进行
2,可以实现B(A b)的构造函数,实现类似于转换的过程
3,设计中如果出现这样的情况,属于设计不完善,应该改善。
就好象机器需要的同一型号的螺丝,你用了两个铸模一样,尽管这俩螺丝用于不同的地方。
你涉及到数据库吗,我之前遇到这问题是两个class字段一样但对应不同的表,
最简单的写一个转换函数,把你要的字段直接复制过去
private void copyBToA(A a, B b) {
try {
for (Field f : b.getClass().getDeclaredFields()) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), ProVehicle.class);
Method getMethod = pd.getReadMethod();
Object value = getMethod.invoke(src);
if (value != null) {
BeanUtils.setProperty(a, f.getName(), value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
如果都一样的话,干嘛还要转换