Apa daftar @SuppressWarnings
nama peringatan yang valid di Jawa?
Bit yang masuk di antara ("")
in @SuppressWarnings("")
.
java
eclipse
warnings
compiler-warnings
suppress-warnings
Ron Tuffin
sumber
sumber
"ProhibitedExceptionDeclared"
dalam Kerangka Kerja Koleksi Eclipse (org.eclipse.collections.impl.block.function.checked.ThrowingFunction
), dan itu tidak tercantum di bawah ini.Jawaban:
Itu tergantung pada IDE atau kompiler Anda.
Berikut adalah daftar untuk Eclipse Galileo:
Daftar untuk Indigo menambahkan:
Daftar untuk Juno menambahkan:
Kepler dan Luna menggunakan daftar token yang sama dengan Juno ( daftar ).
Yang lain akan serupa tetapi bervariasi.
sumber
void foo( Object o ) { boolean b; if ( ( b = o == null ) ) o = new Object(); o.toString(); }
. Beberapa lingkungan (mis. NetBeans 7.3 w / Java 6 JDK [1.6.0_41]) akan menghasilkan"o possibly null"
saato.toString()
panggilan meskipuno
tidak dapat nol pada saat itu.semicolon
sepertinya tidak bekerja di luna? :( Adakah yang bisa memverifikasi apakahsemicolon
ini benar?Semua nilai diizinkan (yang tidak dikenal diabaikan). Daftar yang dikenali adalah kompiler khusus.
Dalam Tutorial Java
unchecked
dandeprecation
terdaftar sebagai dua peringatan yang diperlukan oleh Spesifikasi Bahasa Java, oleh karena itu, peringatan tersebut harus valid dengan semua kompiler:Bagian spesifik di dalam Spesifikasi Bahasa Jawa yang didefinisikan tidak konsisten antar versi. Dalam Java SE 8 Spesifikasi
unchecked
dandeprecation
terdaftar sebagai peringatan kompiler di bagian 9.6.4.5. @SuppressWarnings dan 9.6.4.6 @Drecrecated , masing-masing.Untuk kompiler Sun, running
javac -X
memberikan daftar semua nilai yang dikenali oleh versi itu. Untuk 1.5.0_17, daftar tampaknya adalah:sumber
Daftar ini khusus untuk kompiler. Tapi di sini adalah nilai-nilai yang didukung di Eclipse :
Sun JDK (1.6) memiliki daftar peringatan yang didukung lebih pendek :
Javascript terbaru yang tersedia (1.6.0_13) untuk mac memiliki peringatan yang didukung berikut
sumber
Favorit baru bagi saya adalah
@SuppressWarnings("WeakerAccess")
di IntelliJ, yang membuatnya tidak mengeluh ketika ia berpikir Anda harus memiliki pengubah akses yang lebih lemah daripada yang Anda gunakan. Kami harus memiliki akses publik untuk beberapa metode untuk mendukung pengujian, dan@VisibleForTesting
anotasi tidak mencegah peringatan.ETA: "Anonim" berkomentar, di halaman @MattCampbell terhubung dengan, catatan yang sangat berguna berikut:
sumber
Saya perhatikan bahwa ini
//noinspection
dapat dibuat secara otomatis di IntelliJ@SuppressWarninigs
sebelum pernyataan//noinspection
dengan menekan Alt + Enter ketika Anda memiliki peringatan yang dipilih dan kemudian menggunakan tombol panah kanan untuk melihat Menekan untuk ... pilihanBerakhir di sini ketika saya ingin menekan peringatan "sakelar terlalu sedikit label" dari IntelliJ. Saya tidak menemukan daftar lengkap untuk
@SuppressWarning
dukungan IntelliJ tetapi//noinspection
melakukan trik untuk saya.sumber
//noinspection SwitchStatementWithTooFewBranches
sebelumswitch
bekerja juga untuk saya.Dan ini sepertinya daftar yang jauh lebih lengkap, di mana saya menemukan beberapa peringatan khusus untuk Android-Studio yang tidak dapat saya temukan di tempat lain (mis. SynchronizeOnNonFinalField)
https://jazzy.id.au/2008/10/30/list_of_suppresswarnings_arguments.html
Oh, sekarang pedoman SO bertentangan dengan pembatasan SO. Di satu sisi, saya seharusnya menyalin daftar daripada hanya menyediakan tautan. Tetapi di sisi lain, ini akan melebihi jumlah karakter maksimum yang diperbolehkan. Jadi semoga saja tautannya tidak rusak.
sumber
JSL 1.7
Dokumentasi Oracle menyebutkan:
unchecked
: Peringatan yang tidak dicentang diidentifikasi oleh string "tidak dicentang".deprecation
: Kompiler Java harus menghasilkan peringatan penghentian ketika tipe, metode, bidang, atau konstruktor yang deklarasinya diberi penjelasan dengan penjelasan @Drecrecated digunakan (yaitu diganti, dipanggil, atau dirujuk dengan nama), kecuali: [...] The gunakan ada di dalam entitas yang dianotasi untuk menekan peringatan dengan anotasi @SuppressWarnings ("deprecation"); atauIni kemudian menjelaskan bahwa implementasi dapat menambah dan mendokumentasikan sendiri:
sumber
unchecked
satu-satunya yang didukung oleh standar; bagian berikutnya dari yang Anda kutip mengatakan peringatan penghentian tidak boleh dihasilkan ketika "Penggunaannya ada dalam entitas yang diberi catatan untuk menekan peringatan dengan anotasi@SuppressWarnings("deprecation")
"Saya hanya ingin menambahkan bahwa ada daftar induk parameter penekan IntelliJ di: https://gist.github.com/vegaasen/157fbc6dce8545b7f12c
Terlihat cukup komprehensif. Sebagian:
sumber
Jika Anda menggunakan SonarLint, coba di atas metode atau kelas seluruh string squid: @SuppressWarnings ("squid: S1172")
sumber