使用@Inject 注释时出现 NullPointerException

NullPointerException when using @Inject annotation

即使我在 MyClass 中 @Inject Message 对象,我也遇到了这个错误。 我现在正在尝试学习如何注入对象。

请帮助我,谢谢!

这是我的例子。

主要:

public class Main {

    public static void main(String [] arg){
        new MyClass().print();
    }

}

我的班级

import javax.inject.Inject;

public class MyClass {

    @Inject private Message message;

    public void print() {
        System.out.println(message.getMessage());
    }

}

留言

public class Message {

    public String getMessage() {
        return "Hello";
    }

}

我看不到任何可以解释或使用 @Inject 注释的内容。您将需要某种 DI 框架,它实际上会为您执行依赖注入。也许考虑查看类似 Guice or Spring?

之类的最小示例

如果您分析当前的程序,您只是在声明一个字段(默认为 null),并且从未将其设置为任何内容,因此是 NPE。