根据 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不是默认源码模式。那是哪一个呢?