Java とDagger依存性注入フレームワークを使用しています。多くの場合、クラスを初期化する必要がありますが、後で使用する状況があります。
private final Message message;
public SomePresenter() {
message = DaggerComponent.getMessage();
}
public someFuncA() {
message.doSomething();
}
public someFuncB() {
message.doSomething();
}
メッセージが最初に要求されたときに初期化され、その瞬間から常にこのクラスで同じメッセージインスタンスを使用する必要があります。どうやってやるの?
編集:
次のようにLazyを使用しようとしましたが、lazyMessageは次のとおりですundefined
。
public class StartPresenter {
@Inject
Lazy<Message> lazyMessage;
@Inject
public StartPresenter(ConfigObject config) {
}
}
これが私のdagger2構成です:
@Component(modules = {ApplicationModule.class})
@Singleton
public interface ApplicationComponent {
Message getMessage();
}
@Module()
public class CoreModule {
@Provides @Singleton
Message provideMessage() {
return new MessageImpl();
}
}
lazyMessage を短剣でインスタンス化するにはどうすればよいですか?