java - 指定多个类修饰符

标签 java

section 8.1.1 Class Modifiers of the Java Language Specification 8 ,它指出:

ClassModifier: one of
    Annotation public protected private abstract static final strictfp

但我设法编译了以下内容:

public strictfp A{}

也就是说,它声明应该选择其中一个类修饰符,但我能够选择多个。我是否误解了此处的规范?

最佳答案

答案在上面的规则中:

ClassModifiers:
    ClassModifier
    ClassModifiers ClassModifier <<== Here

ClassModifier: one of
    Annotation public protected private abstract static final strictfp

从本质上讲,该规则表明您可以在 ClassModifiers 列表中使用一个或多个 ClassModifier。这种“一个或多个”迭代概念的递归定义在 BNF 风格的语法描述中很常见(与 EBNF 不同,EBNF 为重复提供了一种特殊的语法)。

关于java - 指定多个类修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27619385/

相关文章:

java - 节点是 node != null 和 node.next == null 之间的区别?

简单 Java RMI 示例中的 java.lang.AbstractMethodError

java - Google 语音 API 返回 NULL

java - Spring注解@Inject不起作用

java - 使用嵌套迭代器删除没有 ConcurrentModificationException 的集合项

java - 为什么 tomcat 与 Facelets 一起工作?

java - 一段时间后加载 MySQL 时出错

java - 找不到 android.Activity 类 intellij IDEA

java - 等待特定文本显示在下拉菜单中 - selenium

java - Android:比较 ImageButton 和资源中的图像