Объединение нескольких аннотаций @SuppressWarnings-Eclipse Indigo


таким образом, проблема заключается в том, чтобы объединить несколько предупреждающих подавлений, чтобы каждый элемент не нуждался в собственном @SuppressWarnings Примечание.

например:

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

теперь вместо двух @SuppressWarnings Я хочу иметь один на уровне класса для этих двух предупреждений, так что вот так:

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

но это не правильный синтаксис, есть ли способ сделать это?

2 122

2 ответа:

использовать следующий: @SuppressWarnings({"unused", "unchecked"})

если вы посмотрите внутри аннотации вы увидите это:

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

как видите,стоимостью параметр представляет собой массив строк... таким образом, параметр в аннотации может быть: значение1, значение2 и значение3 здесь

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

т. е.:

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

вы можете часто увидеть что-то вроде

@SuppressWarnings("unused") 

и это частный случай, позволяющий одному элементу wit no" { }"