注释类“public static @interface”中的static关键字是什么?

时间:2011-07-26 16:05:26

标签: java static annotations

我发现了一个奇怪的注释:

public static @interface WebResult { }

为什么static在那里?他们是如何编译的?我的IDE不允许使用这样的修饰符!

包含的类是javax.jws.WebResult

1 个答案:

答案 0 :(得分:6)

当它嵌套在另一个类中时,它是有效的(但不是必需的):

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

来自Java语言规范section 8.5.2

  

成员接口始终是隐式静态的。声明成员接口明确列出静态修饰符是允许但不是必需的。

如果您在顶级课程中看过它,请显示 您发现它的位置。