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?


@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"})


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 " {} "

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.