所以我有一点问题,让我的属性在一个超类类型的情况下正确设置。
我有两个类,使得类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,但随后我的所有值都被空了。
我也不明白了,如果你有什么建议,我将不胜感激。
在父类中声明该方法。子类将重写此方法,然后调用super.foo(ResultSet rs)
,其中foo(...)
是被重写的方法。在其中,您可以解析ResultSet
并设置对象的字段。
,
class Foo{
void setProperties(final ResultSet rs){
// do stuff
}
}
final class Bar extends Foo{
@Override
final void setProperties(final ResultSet rs){
// do stuff
super.setProperties(rs);
}
}
有关详细信息,请参见使用关键字super。