android - Dagger 无法注入(inject)类型参数字段

标签 android dependency-injection dagger dagger-2

我正在开发一个 android 应用程序,我正在尝试注入(inject)一个在抽象类中类型参数化的字段:BaseListFragment

public abstract class BaseListFragment<E, A extends ArrayAdapter<E>, 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<Project, ProjectViewAdapter, ProjectService>
{
}

有没有办法注入(inject)参数化类型?

问候,

最佳答案

从 2.0.1 版开始,Dagger 2 可以 support您所说的注入(inject)类型。看看GenericTest对于所有各种排列。

关于android - Dagger 无法注入(inject)类型参数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079276/

相关文章:

android - 以编程方式将位图转换为 SVG

android - AlertDialog 使应用程序崩溃

dependency-injection - Ninject 多层控制台应用程序

dependency-injection - 什么时候使用接口(interface),什么时候使用高阶函数?

android - DaggerAppComponent - Unresolved reference

java - Dagger 可以在不注入(inject)子 Activity 类的情况下注入(inject)抽象 Activity 类吗?

android - 将枚举映射到 Dagger 注入(inject)类(相当于 MapBinder)

android - 什么时候以及为什么要使用一组 Executor

android - iOS 版 Chrome 和 Android 版 Chrome 之间的区别

c# - 简单注入(inject)器注册自动映射器