[英]Does the order in which @Provides written matter?
以下示例中的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));
}
重要的是返回類型和注釋。 其余的(方法名稱,方法位置和方法參數)無關緊要。
返回類型很重要,因為它是注入類型,這就是您要提供的類型。 注釋很重要,因為它們告訴您必須如何配置提供程序。
該方法的順序並不重要,因為它是不可預測的,你可以寫methodA
之前methodB
,但是編譯器可能決定將其寫入methodB
之前methodA
在你.class
文件。 它與C語言不同,在C語言中,您必須(至少)聲明要使用的方法。
同樣,方法名稱和參數(甚至...參數順序)無關緊要。 今天,您可能有一個名為foo(A a, B b)
的提供程序方法,明天您可能已將其更改為bar(X x, Y y)
,仍然會使用適當的參數對其進行調用。
關於最佳實踐,請始終保持代碼可讀。 因此,如果您有關於將所有提供者方法和所有輔助方法放在一起的約定,那就這樣吧。 如果您的團隊說要盡量減少聲明使用之間的距離,請使用它。 如果您的代碼約定說要按字母的相反順序對方法進行排序,請這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.