Saya menggunakan @SuppressWarnings("unchecked")
dan @SuppressWarnings("null")
sebagian besar metode di atas untuk membiarkan kode dikompilasi tanpa peringatan, tetapi saya ragu. Ditemukan pertanyaan Stackoverflow ini . Jon Skeet menulis jawaban yang menurut saya menarik.
Menurut dia,
Kadang-kadang generik Java tidak membiarkan Anda melakukan apa yang Anda inginkan, dan Anda perlu memberi tahu kompiler secara efektif bahwa apa yang Anda lakukan benar-benar legal pada waktu pelaksanaan.
Tetapi bagaimana jika ada kemungkinan pengecualian akan dilemparkan? Bukankah menekan peringatan adalah ide yang buruk? Tidakkah seharusnya saya menyadari tempat-tempat di mana masalah bisa muncul?
Juga, bagaimana jika orang lain memodifikasi kode saya nanti dan menambahkan beberapa fungsi yang dipertanyakan tanpa menghapus SuppressWarnings? Bagaimana itu bisa dihindari dan / atau ada alternatif lain untuk ini?
Haruskah saya menggunakan @SuppressWarnings("unchecked")
dan @SuppressWarnings("null")
?
Perbarui # 1
Sejauh jenis cast yang tidak dicentang pergi, menurut jawaban ini (ditunjukkan oleh @gnat dalam komentar di bawah), menekan peringatan ini diperlukan.
Banyak perpustakaan Java yang sangat diperlukan tidak pernah diperbarui untuk menghilangkan kebutuhan akan typecast yang tidak aman. Menekan peringatan itu diperlukan agar peringatan lain yang lebih penting akan diperhatikan dan diperbaiki.
Dalam hal menekan peringatan lainnya, masih ada sedikit area abu-abu.
Perbarui # 2
Sesuai Oracle Docs (juga disebutkan oleh beberapa jawaban di bawah):
Sebagai soal gaya, programmer harus selalu menggunakan anotasi ini pada elemen yang paling bersarang di mana itu efektif. Jika Anda ingin menekan peringatan dalam metode tertentu, Anda harus mencatat metode itu daripada kelasnya.