我决定覆盖子类中的自动装配字段。我该怎么做才能覆盖? 像这样的东西
class Superclass {
@Autowired
Test test;
public Test getTest() {
return test;
}
}
class Subclass extends Superclass {
@Autowired
Test2 test2;
public Subclass() {
super().test=test2;
}
}
答案 0 :(得分:1)
如果理解正确,您希望自动填充值test2并使用方法test()来使用此新值。
java中没有办法覆盖类变量,至少使用受保护的字段将允许您在子类中修改它的值。 但在这种情况下,我认为最好覆盖getTest()方法来返回test2。
答案 1 :(得分:1)
感谢@dok解决方案我以这种方式覆盖字段:
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);
}
}