Java 抽象类的静态映射在我的Spring组件中为空
我有一个带有一些简单映射的抽象组件。然后我有ManagerBean,它是Springbean,我需要AbstractComponent.myMap,但它是空的 抽象组件Java 抽象类的静态映射在我的Spring组件中为空,java,spring,Java,Spring,我有一个带有一些简单映射的抽象组件。然后我有ManagerBean,它是Springbean,我需要AbstractComponent.myMap,但它是空的 抽象组件 public class AbstractComponent { public static Map<TypeA, SomeFunctionAPI> myMap = new HashMap<>(); static { myMap.put(TypeA.X, new Some
public class AbstractComponent {
public static Map<TypeA, SomeFunctionAPI> myMap = new HashMap<>();
static {
myMap.put(TypeA.X, new SomeFunctionAPI(){}); //anonymous implementation depending on TypeA
myMap.put(TypeA.F, new SomeFunctionAPI(){});
}
弹簧:
<bean id="managerBean" class="myPckage.ManagerBean">
XML only,请注意,只有ManagerBean是springBean。AbstractComponent只是一个抽象类,不在SpringContex中。伙计们,我想你们误解了我的问题。我不想注入任何东西,也不想有任何依赖性。为什么我不能只使用AbstractComponent.myMap而不创建AbstractComponent类型的bean,仅仅是纯Java?不是所有的东西都必须是春豆。。我的问题是为什么这不起作用。试着将myMap
声明为final
。这段代码应该可以工作,但我认为在代码中的某个地方,您只使用null.XML重新初始化了这个变量,请注意,只有ManagerBean是springBean。AbstractComponent只是一个抽象类,不在SpringContex中。伙计们,我想你们误解了我的问题。我不想注入任何东西,也不想有任何依赖性。为什么我不能只使用AbstractComponent.myMap而不创建AbstractComponent类型的bean,仅仅是纯Java?不是所有的东西都必须是春豆。。我的问题是为什么这不起作用。请尝试将myMap
声明为final
。这段代码应该可以工作,但我认为在代码中的某个地方,您可以使用null重新初始化此变量。
<bean id="managerBean" class="myPckage.ManagerBean">