我有这种奇怪的情况,当使用子类中的super()从父类执行方法时,继承的属性为null。
以下是两个班级:
public class ParentClass {
private String property;
public void setProperty(String property) {
this.property = property;
}
public String getProperty() {
return property;
}
public void execute() {
// do something with property;
}
}
public class ChildClass {
@Override
public void execute() {
super.execute();
// do something else with property
}
}
Spring应用程序上下文:
<bean id="parentClass" class="com.ParentClass" singleton="false">
<property name="property" value="value"/>
</bean>
<bean id="childClass" class="com.ChildClass" parent="parentClass" singleton="false">
</bean>
当直接调用ParentClass的execute方法时,property会相应地设置值。
但是当ChildClass的super.execute()从ParentClass调用execute()的基本实现时,属性属性为null,我无法理解为什么。
(这是一个使用Spring 1.2.7的遗留项目,但仍然依赖注入应该正常工作)