作者:Tony_Friday | 来源:互联网 | 2023-05-25 16:36
我正在研究一个Android应用程序,我正在尝试注入一个在抽象类中参数化的字段:BaseListFragment
public abstract class BaseListFragment, S> extends BaseFragment
{
@Inject protected S service;
}
但是我在编译时遇到以下错误:错误:找不到符号类S.
这是我的BaseFragment代码:
public class BaseFragment extends Fragment
{
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
((App) getActivity().getApplication()).inject(this);
}
}
这是我的服务模块:
@Module(
complete = false,
library = true
)
public class ServiceModule
{
@Provides @Singleton BucketService provideBucketService(RestAdapter restAdapter)
{
return restAdapter.create(BucketService.class);
}
@Provides @Singleton ProjectService provideProjectService(RestAdapter restAdapter)
{
return restAdapter.create(ProjectService.class);
}
@Provides @Singleton ShotService provideShotService(RestAdapter restAdapter)
{
return restAdapter.create(ShotService.class);
}
@Provides @Singleton TeamService provideTeamService(RestAdapter restAdapter)
{
return restAdapter.create(TeamService.class);
}
@Provides @Singleton UserService provideUserService(RestAdapter restAdapter)
{
return restAdapter.create(UserService.class);
}
}
这是一个扩展BaseListFragment的类的示例:
public class ProjectFragment extends BaseEntityFragment
{
}
无论如何都要注入参数化类型?
问候,
1> gk5885..:
从2.0.1版本开始,Dagger 2 确实 支持您所说的注射类型.看看GenericTest
所有各种排列.