Combining multiple @SuppressWarnings annotations -

2019-03-07 21:40发布

So the issue is being able to combine multple warning suppressions so that each item doesn't need it's own @SuppressWarnings annotation.

So for example:

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

Now instead of having two @SuppressWarnings I want to have one at the class level for those two warnings, so like this:

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

But that is not a valid syntax, is there a way to do this?

2条回答
做自己的国王
2楼-- · 2019-03-07 22:02

If you take a look inside the annotation you will see this:

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

as you see, the value parameter is an array of Strings... so the parameter in the annotation can be: value1, value2 or value3 where

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

i.e.:

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

you can oft see something like

@SuppressWarnings("unused") 

and this is a particular case allowing one element wit no "{ }"

查看更多
时光不老,我们不散
3楼-- · 2019-03-07 22:15

Use the following: @SuppressWarnings({"unused", "unchecked"})

查看更多
登录 后发表回答