class SomeClass @Inject constructor( dep: Dependency,context: Context,private val otherClass: OtherClass = OtherClass())
我只提供依赖和上下文…但它说它不能提供OtherClass.它应该需要这个类,因为它有一个默认值…我怎样才能使这个工作?
解决方法 我认为最简单的方法是注入OtherClass:class OtherClass @Inject构造函数()
你也可以使用@named注释来区别于默认实现和自定义OtherClass(但我认为你应该在模块中注入两个以避免混淆):
//编辑:见下面的例子
public static class Pojo { final String string; Pojo(String string) { this.string = string; } @OverrIDe public String toString() { return string; }}@ProvIDes@named("custom")String provIDeCustomString() { return "custom";}@ProvIDesString provIDeDefaultString() { return "default";}@ProvIDes@named("custom")Pojo provIDesCustomPojo(@named("custom") String custom) { return new Pojo(custom);}@ProvIDesPojo provIDesDefaultPojo(String defaultString) { return new Pojo(defaultString);}
为了注入自定义put @Inject @named(“custom”)注释(对不起java)
总结以上是内存溢出为你收集整理的android – Dagger 2 – 在构造函数中使用默认值进行注入全部内容,希望文章能够帮你解决android – Dagger 2 – 在构造函数中使用默认值进行注入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)