我想我錯過了一些東西。我得到這個錯誤:匕首:爲什麼匕首需要一個@inject構造函數來實現一個不依賴於另一個對象的對象
PostsVM cannot be provided without an @Inject constructor or from an
@Provides-annotated method.
假設類如下:
@Module
public class AppModule {
private final Application mApplication;
@Singleton
@Provides
ViewModel provideListViewModel() {
return new PostsVM();
}
}
和A類PostVM
@Singleton
public class PostsVM extends ViewModel {
public boolean get(){
return true;
}
}
和部件:
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(Global global);
void inject(MainActivity mainActivity);
@Architecture.ApplicationContext
Context getContext();
Application getApplication();
}
和在活動:
@Inject
public ViewModelProvider.Factory factory;
@Override
protected void onCreate(Bundle savedInstanceState) {
InjectorClass.inject(this);
正如你所看到的,對於PostVM類給出的例子,簡化版,取決於什麼,爲什麼需要它的@Inject構造函數?
好吧,我現在得到這個部分,所以@Inject既是需要依賴項的類,也是提供依賴項的類? – Relm
@Relm'@Inject'在你想創建的類的構造函數上,並且你想要注入的字段 –