gpt4 book ai didi

android - 在泛型类中注入(inject)字段

转载 作者:行者123 更新时间:2023-11-29 01:02:02 25 4
gpt4 key购买 nike

我有以下形式的 Activity :

public class MyActivity<T extends AbstractDescriptionItem> extends BaseActivity[...]

当我定义:

@ContributesAndroidInjector
abstract MyActivity contributeMyActivity();

我收到这个错误:

error: [Dagger/MembersInjection] [dagger.android.AndroidInjector.inject(T)] Cannot inject members into raw type com.test MyActivity

如果我尝试:

@ContributesAndroidInjector
abstract MyActivity<AbstractDescriptionItem> contributeMyActivity();

我明白了

error: @ContributesAndroidInjector methods cannot return parameterized types

有没有办法在不改变架构的情况下在MyActivity中注入(inject)依赖?

最佳答案

我想到的解决方案是使用类型参数实现 Activity/Fragment 的不同情况并贡献实现。对于您的情况,它将是这样的:

public abstract class MyActivity<T extends AbstractDescriptionItem> extends BaseActivity[...]

假设您有一个扩展 AbstractDescriptionItemBookDescriptionItem 类:

public class BookDescriptionActivity extends MyActivity<BookDescriptionItem>

最后,贡献实现:

@ContributesAndroidInjector
abstract BookDescriptionActivity contributeBookDescriptionActivity();

关于android - 在泛型类中注入(inject)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50372356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com