gpt4 book ai didi

java - @Provides 的书写顺序重要吗?

转载 作者:行者123 更新时间:2023-11-30 01:55:10 24 4
gpt4 key购买 nike

以下示例中的provideA 和provideB 的顺序重要吗?比如应该先写哪个方法?如果不是从功能的角度来看,那么从最佳实践的角度来看这重要吗?

@Singleton
@Provides
@Inject
A provideA(ExampleClass1<B> example1, ExampleClass2 example2) {
return new A(example1, example2);
}

@Provides
@Singleton
@Inject
B provideB(A a) {
return new B(new C(a));
}

最佳答案

不,方法的顺序并不重要。

重要的是返回类型和注释。其余的(方法名称、方法位置和方法参数)并不重要。

返回类型很重要,因为它是注入(inject)类型并且是您将提供的类型。注释很重要,因为它们告诉您必须如何配置提供程序。

方法的顺序并不重要,因为它是不可预测的,您可能会在 methodB 之前编写 methodA,但编译器可能会决定编写 methodB .class 文件中的 methodA 之前。它不像在 C 中那样,在使用它们之前必须(至少)声明要使用的方法。

同样,方法名称和参数(甚至...参数顺序)并不重要。今天您可能有一个名为 foo(A a, B b) 的提供程序方法,明天您可能会将其更改为 bar(X x, Y y) 它仍然会使用适当的参数进行调用。

您应该保持代码可读

关于最佳实践,请始终保持代码的可读性。因此,如果您有将所有提供程序方法和所有辅助方法放在一起的约定,那就这样吧。如果您的团队说要最小化声明使用之间的距离,请使用它。如果您的代码约定要求按相反的字母顺序对方法进行排序,那么就这样做。

关于java - @Provides 的书写顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778550/

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