Menggabungkan beberapa anotasi @SuppressWarnings - Eclipse Indigo

149

Jadi masalahnya adalah dapat menggabungkan penindasan peringatan multple sehingga setiap item tidak membutuhkan @SuppressWarningsanotasi itu sendiri .

Jadi misalnya:

public class Example
    public Example() {
        GO go = new GO();  // unused
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked
    }
    ...
    // getters/setters/other methods
}

Sekarang alih-alih memiliki dua, @SuppressWarningssaya ingin memiliki satu di tingkat kelas untuk dua peringatan itu, jadi seperti ini:

@SuppressWarnings( "unused", "unchecked" )
public class Example
    public Example() {
        GO go = new GO();  // unused - suppressed
        ....
        List<String> list = ( List<String> ) go.getList(); // unchecked - suppressed
    }
    ...
    // getters/setters/other methods
}

Tapi itu bukan sintaks yang valid, apakah ada cara untuk melakukan ini?

diketahuiasilya
sumber
@SuppressWarnings ("tidak digunakan", "tidak dicentang") tidak berfungsi, harap modifikasi ke @SuppressWarnings ({"tidak terpakai", "tidak dicentang"})
Raj

Jawaban:

304

Gunakan yang berikut ini: @SuppressWarnings({"unused", "unchecked"})

LuGo
sumber
Apakah ini konvensi normal untuk semua anotasi di Eclipse?
knownasilya
1
Ini untuk parameter daftar. Saat menggunakan SDK untuk menjalankan Eclipse (atau ketika memiliki sumber Java terpasang), Anda dapat menekan F3 pada anotasi apa pun untuk melihat deklarasi sumbernya, dengan demikian juga melihat berapa banyak (dan yang) parameter yang dibutuhkan.
Bananeweizen
8
Itu akan menjadi array, seperti pada String[] value(). Daftar tidak memiliki sintaks khusus di Java, tetapi array dapat didefinisikan menggunakan tanda kurung.
Maarten Bodewes
14

Jika Anda melihat ke dalam anotasi Anda akan melihat ini:

public @interface SuppressWarnings {
    String[] value();
}

seperti yang Anda lihat, parameter nilai adalah array dari Strings ... sehingga parameter dalam anotasi dapat berupa: value1, value2 atau value3 di mana

final String[] value1 = { "a1" };
final String[] value2 = { "a1", "a2" };
final String[] value3 = { "a1", "a2", "a3" };

yaitu:

@SuppressWarnings({"unused"})
@SuppressWarnings({"unused", "javadoc"})

Anda tidak bisa melihat sesuatu seperti

@SuppressWarnings("unused") 

dan ini adalah kasus khusus yang memungkinkan satu elemen tanpa " {} "

ΦXocę 웃 Пepeúpa ツ
sumber