Java 匕首不会初始化懒惰<;T>;惰性变量?
我正在使用Java和依赖注入框架。我经常会遇到这样的情况:我必须初始化一个类,但以后会用到它,例如:Java 匕首不会初始化懒惰<;T>;惰性变量?,java,inject,dagger,dagger-2,Java,Inject,Dagger,Dagger 2,我正在使用Java和依赖注入框架。我经常会遇到这样的情况:我必须初始化一个类,但以后会用到它,例如: private final Message message; public SomePresenter() { message = DaggerComponent.getMessage(); } public someFuncA() { message.doSomething(); } public someFuncB() { message.doSomething(); }
private final Message message;
public SomePresenter() {
message = DaggerComponent.getMessage();
}
public someFuncA() {
message.doSomething();
}
public someFuncB() {
message.doSomething();
}
我希望消息在第一次被请求时被初始化,并且从那一刻起,在这个类中始终使用相同的消息实例。我该怎么做
编辑:
我尝试按如下方式使用,但lazyMessage未定义:
public class StartPresenter {
@Inject
Lazy<Message> lazyMessage;
@Inject
public StartPresenter(ConfigObject config) {
}
}
如何让dagger实例化lazyMessage?使用类似
@Inject Lazy<Message> message;
Dagger仅在调用get()时连接类。每次调用get()时,它都会返回相同的实例。仅通过getter访问
消息
,您将在其中初始化它。如何创建StartPresenter的实例?
@Inject Lazy<Message> message;
//Doing something with message
message.get().messageMethod();