我明白自動取消裝箱應該小心,因爲正在取消裝箱的參考文件可以爲空。爲什麼自動裝箱標記爲警告?我在這裏錯過了一些陷阱嗎?爲什麼將自動裝箱標記爲警告?
回答
如果您不期望性能問題(就微優化而言),您可以安全地禁用此警告。這只是一個跡象,如果你不知道自動拳擊發生在這裏。在有I/O開銷(由於數據庫事務或磁盤訪問)的業務邏輯代碼中,自動裝箱從不是問題。
我打算禁用這個Eclipse警告,但下面的文章讓我想不到。我仍然不完全確定,但在我看來,這些可能是避免自動裝箱的好理由。
https://effective-java.com/2010/05/the-advantages-and-traps-of-autoboxing/
自動裝箱可以促進相關的收藏「刪除」方法的錯誤,儘管這可能是一個相當不起眼的錯誤。
當我使用隨機數生成器來選擇要從ArrayList中刪除的項的索引時,我遇到了這個錯誤。生成器返回了一個很長的基元,我不小心嘗試用它作爲List.remove(int index)的參數。編譯器將long轉換爲Long,並在List.remove(Object o)中使用它,從而給出完全不同的行爲。幸運的是,一個斷言聲明迅速發現了這個錯誤。
根據對「刪除」這個問題的討論,其他人遇到類似的問題,他們的int出乎意料地像一個整數,但我不明白這是怎麼發生的。 https://stackoverflow.com/questions/104799/why-arent-java-collections-remove-methods-generic (請參閱ScArcher2的評論)
這是重載函數的預期行爲,而不是bug。 –
- 1. 生成自動裝箱使用警告
- 2. 爲什麼自動裝箱/取消裝箱在這裏失敗?
- 3. 爲什麼IDE將我的類標記爲自動生成的?
- 4. 爲什麼警告Newtonsoft.Json.JsonConvert.DeserializeObjectAsync
- 5. 爲什麼發生警告?
- 6. 爲什麼我有警告?
- 7. 爲什麼選中警告
- 8. 爲什麼警告5?
- 9. System.ValueType爲System.Object爲什麼需要裝箱
- 10. 編譯器爲自動裝箱生成什麼代碼?
- 11. 爲什麼char不能自動裝箱到Java中的字符?
- 12. 爲什麼Java不支持強制和自動裝箱?
- 13. Java:爲什麼不在這裏發生自動裝箱?
- 14. 爲什麼自動裝箱在數組中不起作用?
- 15. 爲什麼自動裝配bean爲空?
- 16. 爲什麼將ImageView標記爲錯誤?
- 17. 爲什麼保險標誌會爲此發出警告?
- 18. 轉換爲裝箱語法需要投射UIBarMetrics警告
- 19. 爲什麼Zend將子頁面標記爲非活動?
- 20. 編譯後沒有出現警告,爲什麼警告我?
- 21. 爲什麼警告AnchorElement(<a>)會警告href屬性?
- 22. 爲什麼我得到mysql_real_escape_string()警告?
- 23. 爲什麼我有file_get_content警告
- 24. Xcode - 爲什麼沒有顯示警告?
- 25. 爲什麼我有這個警告?
- 26. 爲什麼警告框不顯示?
- 27. PHP頭部警告...爲什麼?
- 28. 爲什麼引用Bool給出警告
- 29. 爲什麼@SafeVarargs不會抑制警告?
- 30. 爲什麼不@NotNull anotation刪除警告?
我的開箱即用的eclipse不會顯示自動裝箱和取消裝箱的警告。你使用什麼類型/版本的日食? – LanguagesNamedAfterCofee
您可以在項目屬性 - > Java編譯器 - >錯誤/警告 - >潛在編程問題中啓用它(和其他不同的警告)。 – Artium
請參閱:https://bugs.eclipse.org/bugs/show_bug.cgi?id = 163065這是將裝箱與拆箱分離的功能請求。 – Kyle