gpt4 book ai didi

dependency-injection - Dagger2 中的静态提供方法

转载 作者:行者123 更新时间:2023-12-03 15:38:39 24 4
gpt4 key购买 nike

为什么要在提供方法之前使用静态修饰符?

即使我删除了静态修饰符,dagger2 也可以正常工作。

@Provides static Pump providePump(Thermosiphon pump) {
return pump;
}

最佳答案

两种风格都有效;是否保持方法静态完全取决于您和您在普通的旧 Java 中的正常“这应该是静态方法”判断。在这里,pump对模块实例没有任何用处,因此该方法可以很容易地是静态的。

静态方法调用更快,particularly in Android ,因为它们避免了虚拟方法表查找。这也可能使编译器、JIT 运行时或静态分析工具更容易内联。我猜你会通过创建类或方法来打开类似的优势 final .

鉴于静态方法不能受制于实例字段,可读性也可能略有提高,但这取决于您。

如果您确信您的 @Provides 方法的行为不会发生变化,包括在测试中,那么您可以利用性能/可读性的提高。但是,如果您需要引用模块状态或希望允许子类/测试覆盖,那么实例方法必然是正确的调用。

关于dependency-injection - Dagger2 中的静态提供方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607503/

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