Java 如何在子类中重写@Autowired属性
我决定重写子类中的自动连接字段。我怎样做这个覆盖? 像这样的Java 如何在子类中重写@Autowired属性,java,spring,design-patterns,Java,Spring,Design Patterns,我决定重写子类中的自动连接字段。我怎样做这个覆盖? 像这样的 class Superclass { @Autowired Test test; public Test getTest() { return test; } } class Subclass extends Superclass { @Autowired Test2 test2; public Subclass() { super().te
class Superclass {
@Autowired
Test test;
public Test getTest() {
return test;
}
}
class Subclass extends Superclass {
@Autowired
Test2 test2;
public Subclass() {
super().test=test2;
}
}
如果理解正确,则希望自动填充值test2,并使用方法test来使用此新值 java中没有办法重写类变量,至少使用受保护的字段将允许您在子类中修改它的值。
但在这种情况下,我认为最好重写getTest方法,以返回test2。感谢@dok solution,我用这种方式重写字段:
class Superclass {
private Test test;
@Autowired
public Test getTest(Test test) {
return this.test = test;
}
}
class Subclass extends Superclass {
@Override
@Autowired
public Test getTest(Test2 test2) {
return super.getTest(test2);
}
}
可能的重复肯定不是那个问题的重复。