gpt4 book ai didi

java - 使用内置的 Guice 注入(inject)来注释静态 java.util.Logger 实例的正确习惯用法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:40 25 4
gpt4 key购买 nike

我想开始使用 Guice 3.x 神奇地注入(inject)我的 java.util.logging.Logger 实例。

这是我尝试开始工作的一段代码:

@Singleton
public class Main
{
@Inject
private static final Logger logger;

...
}

这似乎行不通。

无论我在声明中使用什么范围,我都会得到 Exception in thread "main"java.lang.NullPointerException

我在 configure() 方法中将行 super.requestStaticInjection(Main.class); 添加到我的 module 并且它开始工作,但前提是我删除 final 关键字并使其成为 static Logger logger

如果可能的话,我宁愿保留 Logger final

执行此操作的正确惯用 Guice 方法是什么?

最佳答案

您可以使用例如 guice 注入(inject)静态属性

class Dummy {
@Inject static Foo;
}

requestStaticInjection(Dummy.class);

在注入(inject)器配置模块中。

关于java - 使用内置的 Guice 注入(inject)来注释静态 java.util.Logger 实例的正确习惯用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com