匕首不能注入类型的参数字段 [英] dagger cannot inject type parameter field

查看:150
本文介绍了匕首不能注入类型的参数字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的一个Android应用程序,我试图注入一个字段这是一个抽象类类型参数:BaseListFragment

I'm working on an android application and I'm trying to inject a field which is type parameterized in an abstract class : BaseListFragment

public abstract class BaseListFragment<E, A extends ArrayAdapter<E>, S> extends BaseFragment
{
    @Inject protected S service;
}

但我在编译得到这个以下错误:
错误:无法找到符号S级

But I get this following error at compile : error: cannot find symbol class S

下面是我的code为BaseFragment:

Here is my code for BaseFragment :

public class BaseFragment extends Fragment
{
    @Override public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        ((App) getActivity().getApplication()).inject(this);
    }
}

这是我的服务模块:

here is my service module :

@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的例子:

And here is an example of a class extending BaseListFragment :

public class ProjectFragment extends BaseEntityFragment<Project, ProjectViewAdapter, ProjectService>
{
}

反正是有注入的参数化类型?

Is there anyway to inject a parameterized type ?

问候,

推荐答案

随着2.0.1版本开始,匕首2的确实的的支持注射的,你谈论的类型。看看<一个href=\"https://github.com/google/dagger/blob/master/compiler/src/it/functional-tests/src/test/java/test/GenericTest.java\"相对=nofollow> GenericTest 所有各种排列的。

As of the 2.0.1 release, Dagger 2 does support the type of injection that you're talking about. Take a look at GenericTest for all of the various permutations.

这篇关于匕首不能注入类型的参数字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆