块在Java中是语句吗?

块在Java中是语句吗?,java,Java,这可能适用于其他语言,但特定于Java。在Java中,块本身是语句吗?在Java教程中:块与语句分开处理,表示它是一个语句序列/语句组,但不表示它是语句本身。有人能解释一下原因吗。是的,根据Java语言规范()中定义的语法,块是一种语句,具体来说,它是一种没有trailingsubstate的语句参见JLS§14.5(参见其他答案)。另外,在ecj和javac(两种最流行的java解析器/编译器)中: Javac的表示块的AST节点:表示块的AST节点扩展了JCStatement ecj的:扩

这可能适用于其他语言,但特定于Java。在Java中,块本身是语句吗?在Java教程中:块与语句分开处理,表示它是一个语句序列/语句组,但不表示它是语句本身。有人能解释一下原因吗。

是的,根据Java语言规范()中定义的语法,
是一种
语句
,具体来说,它是一种没有trailingsubstate的
语句
参见JLS§14.5(参见其他答案)。另外,在ecj和javac(两种最流行的java解析器/编译器)中:

  • Javac的表示块的AST节点:表示块的AST节点扩展了JCStatement
  • ecj的:扩展
    语句

这样,SPEC表示它是一个语句,并且两个主要的实现都把它表示为它的语句版本的一个子类型。你是在做编译器还是什么?