所以我有这样的类结构:
public class A {
private String foo;
protected A() {};
protected A(String foo) {
this.foo = foo;
}
public String getFoo() {
return foo;
}
}
public class B extends A {
public B() {};
public String getSomething(String test) {
return super.getFoo() + test;
}
}
public class C extends A {
public C() {};
public String getSomethingElse(String test) {
return super.getFoo() + test;
}
}
以下是我的java配置文件:
@Configuration
public class ConfigA {
@Bean
public A a() {
return new A("FinalString");
}
}
@Configuration
public class ConfigChildren {
@Bean
public B b() {
return new B();
}
@Bean
public C c() {
return new C();
}
}
显然问题是super
值是子类为null,因此即使初始化配置,super.getFoo
也将为null。
我想知道如何在配置中连接这两个。我知道在Spring XML中有一种方法可以使用parent
字段,但我不知道如何在java配置中执行此操作。
我试过和单身人士一起玩,但我不认为这是真的适用或好的做法。有没有办法初始化子类的A
而不将字符串变量传递给每个子进程并让它super(foo)
。或者这是唯一的方法吗?