2
在the official document,你可以看到這個關於田間注射的句子。田間注射與Guice最後一場
避免對最終字段使用字段注入,其中weak semantics。
爲什麼不使用最終修飾詞的字段注入有意義? 任何人都可以解釋嗎?
在the official document,你可以看到這個關於田間注射的句子。田間注射與Guice最後一場
避免對最終字段使用字段注入,其中weak semantics。
爲什麼不使用最終修飾詞的字段注入有意義? 任何人都可以解釋嗎?
你基本上會問以下問題:「弱語義」是什麼意思?
一般來說,正如你所指出的,「語義」是「意義」。此外,在編程中semantics指的是:
嚴謹...研究編程語言的含義。
當我們說「注入最終字段具有弱語義」時,這意味着「注入最終字段會導致難以嚴格推理您的程序的含義。」
爲什麼?正如鮑里斯蜘蛛的評論指出,「弱語義」是指this behaviour:
使用於其他任何情況下[比連載] [設定使用反射的最終場]可能有難以預料的影響,其中包括案件其中一個程序的其他部分繼續使用該字段」的原始值
這意味着,如果你使用反射來設置final
場,你的程序的意思(語義)顯得模糊不清,因爲它現在有不可預測的行爲
不可預測的在鏈接的文檔中提到了正確的行爲:程序的其他部分可以繼續使用final
字段的原始值。它不清楚程序的哪些部分正在使用原始值,哪些部分正在使用重新分配的值。
從鏈接文檔:「_在任何其他上下文中使用可能會有不可預知的影響,包括程序的其他部分繼續使用該字段的原始值的情況。對我來說,這似乎是一個壞主意。 –
相關:http://stackoverflow.com/a/3301720/1553851。請參閱**警告**。 – shmosel
@BoristheSpider你引用什麼是錯誤的? –