這個問題不是關於如何發生堆污染。這個問題不是關於註釋@SafeVarargs
有什麼影響。據我所知,它用於在本地和呼叫站點抑制警告。我讀了documentation。我的問題是:爲什麼將這個註釋添加到Java語言中?@SafeVarargs註釋的存在/缺失是否真的是有用的區別?
考慮以下幾點:
缺少註釋的是不是一個有用的區別。永遠不會有這樣一種情況,您可能打算以不安全的方式使用VarArgs,即「UnsafeVarargs」。
這不同於其他註釋,如
@Override
,其中沒有註釋是一個有用的區別:「嘿,我不打算在我的超類中重寫任何方法,如果有人向我的方法添加了一個具有相同簽名的方法,超「。無論是程序員都知道如何安全地使用可變參數或者他們不這樣做。如果他們添加註釋,它不會改變它。那麼這不僅僅是爲呼叫者提供虛假的安全感嗎?
這讓我想起了有缺陷的概念,即牽着你的車門把手了,而關上了門會阻止你從內鎖定你的鑰匙。
從2點繼續,那豈不是更好地默認全局關閉警告,然後在全球範圍重新啓用它做了廣泛的審查是什麼時候?
也許我錯過了一些東西。也許註釋在從Java舊版本遷移時扮演一個有用的角色?我歡迎你的回答。謝謝。