我是Dagger的新手。我对于用匕首注射什么和不注意什么感到困惑。我知道有必要使用Dagger注入Android Framework类和我的类,但是是否有必要使用dagger注入基本的Java类,如String,StringBuilder等。
public String create(Context context) // Creating Simple objects in the method itself
{
StringBuilder builder=new StringBuilder();
....
return builder.toString();
}
public String create(Context context,StringBuilder builder) // Injecting everything
{
....
return builder.toString();
}
答案 0 :(得分:1)
你不需要注射任何东西。您可以在方法中创建任何您喜欢的内容。在方法内部只是普通的旧Java代码。
当您在该方法中创建的内容不关心特定值时,仅将某些内容作为参数注入,但只需要 a 值。
关于注入公共类的事情是你需要对它们进行限定:这里你注入的字符串不一定与你在那里注入的字符串相同。因此,您需要一些方法来消除它们的歧义,例如注释。
但是,如果你正在注入所有东西,那么你最终会得到大量的注释。有时候你确实想要这样做;有时不。在编写更多代码时,您会感受到这种感觉。
答案 1 :(得分:0)
采用不同的方式,注入的重要部分是它允许您管理对象的状态(包括生命周期,如果您需要)。
因此,如果你有一个没有状态的类(例如一个提供一些无状态函数的Util类),你就不应该注入它。
如果你的StringBuilder类不需要共享状态(即跨两个对象使用相同的StringBuilder),那么你不需要注入它。