@Inject on field дает исключение NullPointerException в Guice - PullRequest
0 голосов
/ 20 января 2020

У меня есть класс MyTransformer, который использует:

ZonedDateTime currentDateTime = ZonedDateTime.ofInstant(generator.generate(), polishZone);

Генератор является интерфейсом:

public interface Generator {
    Instant generate();
}

и вводится в MyTransformer:

public class MyTransformer {
    @Inject                                      
    private Generator Generator; 

Реальная реализация находится в другом классе:

public class DateTimeGenerator implements Generator {
    @Override
    public Instant generate() {
        return Instant.now();
    }
}

Однако, когда я пытаюсь new MyTransformer() из тестового класса, я всегда вижу, что Generator равен null. В моем MainModule у меня есть bind(Generator.class).to(DateTimeGenerator.class). Можно ли ввести Generator на поле? Я могу вставить его в конструктор, и тогда он работает.

...