Я хочу начать использовать Guice 3.x для магического внедрения моих java.util.logging.Logger
экземпляров.
Вот фрагмент кода, который я пытаюсь заставить работать:
@Singleton
public class Main
{
@Inject
private static final Logger logger;
...
}
Это не похоже на работу.
Я получаю Exception in thread "main" java.lang.NullPointerException
независимо от того, какую область я использую в объявлении.
Я добавил строку super.requestStaticInjection(Main.class);
к своему module
в методе configure()
, и он начал работать, но только если я удалю ключевое слово final
и сделаю его static Logger logger
.
Я бы предпочел сохранить Logger final
, если это вообще возможно.
Каков правильный идиоматический способ Guice сделать это?