我有一個內部類中的私有方法,它是私有的我想使用SafeVarargs註釋。但是,我需要有靜態或最終的方法。爲什麼私人方法也需要是最終的?這不是多餘的嗎?java @SafeVarargs爲什麼私有方法需要是最終的
23
A
回答
15
這是多餘的,你提出了一個很好的觀點。
我認爲最終或靜態要求的真正原因是強制該方法不能被覆蓋,因此子類不能篡改數據,使得@SafeVarargs註釋在定義上無用的方法。
但是,雖然它是多餘的,但它並不是一個糟糕的決定 - 很多時候,程序員會盡可能地使每個方法都是私有的,然後根據需要慢慢打開課程。如果此方法在private範圍內標記爲final,那麼如果方法必須打開,它仍然可以使用@SafeVarargs註釋,並且只更改訪問級別。如果故意刪除了最終版本,您將得到編譯時錯誤,但是如果您已經擁有了它,那麼除非私自訪問(在基於團隊的環境中可能不是您自己),否則不會混淆關於爲什麼刪除「私人」修改器突然使代碼不再編譯。
+1
如果錯誤信息將類似於「無效的java.lang。 SafeVarargs註釋。實例方法...不是最終的也不是私有的「,對於那些刪除」private「的人不會有任何困惑。 –
4
相關問題
- 1. 爲什麼方法參數需要設置爲最終?
- 2. 爲什麼我們允許在java中擁有最終的主要方法?
- 3. 在JAVA主要方法中String array的需要是什麼
- 4. 爲什麼要用最後的修改,當我們在方法類有私人
- 5. 測試私有方法,澄清需要
- 6. 爲什麼CustomFieldSerializer需要靜態方法?
- 7. 爲什麼需要使用'addChildViewController:'方法
- 8. 爲什麼spinner listener需要onNothingSelected方法?
- 9. 爲什麼申請方法需要parens?
- 10. 爲什麼JSON不需要setXXX方法?
- 11. 爲什麼我們需要Buffer.isBuffer方法?
- 12. 爲什麼需要DataBind()方法?
- 13. 爲什麼我們需要addRequestHeader方法?
- 14. 爲私有模塊編寫流型定義的最佳方法是什麼?
- 15. 爲什麼我需要一個需要實例的方法?
- 16. 爲什麼@SafeVarargs不會抑制警告?
- 17. 爲什麼我需要最終使用來關閉資源?
- 18. 詢問MethodInfo需要多少參數的最有效方法是什麼?
- 19. 什麼時候和爲什麼EventHandler要求對象是最終的?
- 20. Ruby Class#new - 爲什麼`new`是一個私有方法?
- 21. 構建不需要最新glibc的軟件的最佳方法是什麼?
- 22. 在.NET中單元測試私有方法的最佳做法是什麼?
- 23. 我是否需要鎖定從屬私有方法?
- 24. 將html轉換爲postscript的最佳方法是什麼?在java
- 25. 在Java中輸入數組的最有效方法是什麼?
- 26. 從C++調用Java方法的最簡單方法是什麼?
- 27. 什麼是最重要的Java庫?
- 28. 爲什麼我需要將變量轉換爲@Override [inner class]方法中的最終數組?
- 29. 爲什麼在有完美的父類方法時需要這些類方法?
- 30. 爲什麼特質方法需要asInstanceOf和類方法不
如果我理解正確,你可以使用@Safe可變參數的構造函數,靜態方法,最後的方法和由於Java-9私人 – gstackoverflow