我遇到了一个问题,即在超类类型的情况下无法正确设置我的属性。
我有两个类,B类是A类的一个特殊版本,假设...
public class A {
private String name;
private int id;
...
}
public class B extends A {
private Date time;
private int status;
...
}
现在我想要使用一种用于将结果集中的属性设置到A中的方法,而是将它们设置在B的实例中。
public A setProperties(ResultSet rs) {
A a = new A();
a.setName(rs.getString(...));
...
return a;
}
我已经尝试将此返回值转换为B类型,但是不是所有的A都是B,所以这种方法行不通。我还尝试向setProperties方法添加另一个参数,使其接受一个A并返回一个A,这样我就可以使用多态来获取我的B,但是然后所有的值都被清空了。
对于此问题,我感到无助,非常感谢任何建议。
setProperties
,但仍在子类实例上调用它,则属性将在超类中设置。 - mreA.setProperties()
中检查名称,它显示正常。方法返回后,我在B.setProperties()
中再次检查它,但它为空。有什么想法吗? - Shaded