尝试访问注入的 Bean 时出现空指针异常
Nullpointer Exception when trying to access Injected Bean
我有一个 Maven 多模块项目。当尝试访问注入的 bean 时,出现 Nullpointer 异常。
这是启动应用程序的主要功能
public class App {
public static void main(String[] args) {
System.out.println("Startpoint");
DecisionMaker decisionMaker = new DecisionMaker();
decisionMaker.run();
}
}
这就是我在 DecisionMaker 中所做的
public class DecisionMaker {
@Inject
GameListener gm;
@Inject
BasicProductionManager basicProductionManager;
public DecisionMaker() {
System.out.println("this is the decisionmaker");
System.out.println(gm.toString());
}
所以这不是一个 bean,而是一个普通的 pojo
gamelistener 是我要注入的 Applicationscoped bean。
@Named
@ApplicationScoped
public class GameListener extends DefaultBWListener {
@Inject
Event<OnFrameEvent> onFrameEvent;
public Mirror mirror = new Mirror();
public Game game;
public Player self;
@PostConstruct
public void init() {
System.out.println("init listener");
}
空指针被抛入 DecisionMaker 的构造函数中。 @PostConscrutct 初始化方法未被调用
我调查了类似的问题,但我发现我需要我已经拥有的 PostConstruct 方法。
您无法实例化 DecisionMaker
自己。 CDI 的全部意义在于赋予它创建和管理 bean 的控制权。
查看此 article 了解如何在 JAVA SE 中使用 CDI。
我有一个 Maven 多模块项目。当尝试访问注入的 bean 时,出现 Nullpointer 异常。
这是启动应用程序的主要功能
public class App {
public static void main(String[] args) {
System.out.println("Startpoint");
DecisionMaker decisionMaker = new DecisionMaker();
decisionMaker.run();
}
}
这就是我在 DecisionMaker 中所做的
public class DecisionMaker {
@Inject
GameListener gm;
@Inject
BasicProductionManager basicProductionManager;
public DecisionMaker() {
System.out.println("this is the decisionmaker");
System.out.println(gm.toString());
}
所以这不是一个 bean,而是一个普通的 pojo
gamelistener 是我要注入的 Applicationscoped bean。
@Named
@ApplicationScoped
public class GameListener extends DefaultBWListener {
@Inject
Event<OnFrameEvent> onFrameEvent;
public Mirror mirror = new Mirror();
public Game game;
public Player self;
@PostConstruct
public void init() {
System.out.println("init listener");
}
空指针被抛入 DecisionMaker 的构造函数中。 @PostConscrutct 初始化方法未被调用
我调查了类似的问题,但我发现我需要我已经拥有的 PostConstruct 方法。
您无法实例化 DecisionMaker
自己。 CDI 的全部意义在于赋予它创建和管理 bean 的控制权。
查看此 article 了解如何在 JAVA SE 中使用 CDI。