用于开始Java源文件的有效关键字

到目前为止,我知道这些关键字对于开始java源文件是有效的:

classpublicimportpackageinterfacefinal

来自评论的补充: abstractstrictfpenum

还有吗?

(感谢所有超级快速回复!随意编辑此内容以添加更多内容。)

  • 你错过的真实修饰符: abstractstrictfp

  • @Retention这样的@Retention

  • 注释声明: @interface

  • 枚举: enum

  • 评论和空白

  • 据我所知,没有别的

  • 请记住,标识符可能会在其中使用unicode转义符,例如cl\u0061ss

注释有效http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html

例子

  • @Preliminary @Copyright(“2002年Yoyodyne推进系统”)
  • @Retention(RetentionPolicy.RUNTIME)
  • @target(ElementType.METHOD)

别忘了抽象

enum怎么样?

private怎么样?

编辑:好的,这是我当天的愚蠢脱口秀。

abstract

对于Java> 1.5, enum也是如此。 正如其他人所提到的, abstract

现在查看关键字列表和修饰符矩阵,您只会错过strictfp。

您应该看一下Java编程语言的语法 。 从那里你可以推断出所有可能的关键词。

您应该从CompilationUnit开始。

同样来自http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html ,不要忘记@interface

编辑:此外, strictfp适用于类。 参见JLS§8.1.1 :

类声明可以包括类修饰符

 ClassModifiers:
     ClassModifier
     ClassModifiers ClassModifier

 ClassModifier:其中之一
    注释公共保护私人
     abstract static final strictfp 

并非所有修饰符都适用于所有类声明。 访问修饰符public仅适用于顶级类(第7.6节)和成员类(第8.5节,第9.5节),并在第6.6节,第8.5节和第9.5节中讨论。 访问修饰符protectedprivate仅适用于直接封闭类声明(第8.5节)中的成员类,并在§8.5.1中讨论。 访问修饰符static仅适用于成员类(§8.5,§9.5)。 如果相同的修饰符在类声明中出现多次,则会发生编译时错误。

module 。 在JDK7中。 也许。 (技术上不是真正的关键字。)

(并且这是一个空文件有效吗?作为package-info.java ?这对我来说并不是一个非常有趣的问题。

不要忘记static和protected以及javaDoc注释