Для чего используется ключевое слово static в классе аннотаций public public @interface? - PullRequest
1 голос
/ 26 июля 2011

Я нашел странную аннотацию:

public static @interface WebResult { }

Почему static там? Как они это компилируют? Моя IDE не позволяет использовать такой модификатор!

Класс, в котором он содержится, javax.jws.WebResult.

1 Ответ

6 голосов
/ 26 июля 2011

Это допустимо (но не обязательно), когда оно вложено в другой класс:

public class Foo {   
    public static @interface Bar {
    }    
}

Из спецификации языка Java раздел 8.5.2 :

Интерфейсы-члены всегда неявно статичны.Разрешается, но не обязательно, чтобы объявление интерфейса-члена явно перечисляло статический модификатор.

Если вы видели его в классе верхнего уровня, покажите где Вы нашли это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...