android – Dagger 2 – 在构造函数中使用默认值进行注入

android – Dagger 2 – 在构造函数中使用默认值进行注入,第1张

概述我如何注入这个构造函数: class SomeClass @Inject constructor( dep: Dependency, context: Context, private val otherClass: OtherClass = OtherClass()) 我只提供依赖和上下文…但它说它不能提供OtherClass.它应该需要这个类, 我如何注入这个构造函数:

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 – 在构造函数中使用默认值进行注入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1126123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存