4

根据 Orcale 的Java7 断言指南

  • 源模式 1.3(默认)— 编译器接受使用 assert 作为标识符的程序,但会发出警告。在这种模式下,不允许程序使用 assert 语句。
  • 源模式 1.4 — 如果程序使用 assert 作为标识符,编译器会生成错误消息。在这种模式下,允许程序使用 assert 语句。

我写了这样的课:

package mm;

public class ClassTest {
    public static void main(String[] arg) {
        int assert = 1;
        System.out.println(assert);
    }
}

如果 Oracle 的信息正确(1.3 是默认源模式),它应该可以正常编译。但是我遇到了这样的错误:

$ javac-版本
javac 1.7.0_04

$ javac -d bin src/mm/*
src\mm\ClassTest.java:5: 错误:从 1.4 版开始,'assert' 是关键字,不能用作标识符
                int 断言 = 1;
                    ^
  (使用 -source 1.3 或更低版本以使用 'assert' 作为标识符)
src\mm\ClassTest.java:6: 错误:从 1.4 版开始,'assert' 是关键字,不能用作标识符
                System.out.println(assert);
                                   ^
  (使用 -source 1.3 或更低版本以使用 'assert' 作为标识符)
2 个错误

我手动添加-source 1.3并发出警告但编译正常。看来oracle的信息有误,1.3不是默认源码模式。那是哪一个呢?

4

1 回答 1

1

在 Java 7 中,根据 Oracle 的文档,默认源模式为 1.7 (请参阅 -source 选项)。您所指的文档可能需要更新

于 2012-11-11T11:17:16.223 回答