Согласно руководству по утверждению 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 -version javac 1.7.0_04 $ javac -d bin src/mm/* src\mm\ClassTest.java:5: error: as of release 1.4, 'assert' is a keyword, and may not be used as an identifier int assert = 1; ^ (use -source 1.3 or lower to use 'assert' as an identifier) src\mm\ClassTest.java:6: error: as of release 1.4, 'assert' is a keyword, and may not be used as an identifier System.out.println(assert); ^ (use -source 1.3 or lower to use 'assert' as an identifier) 2 errors
Я добавил вручную -source 1.3
, и он выдал предупреждения, но скомпилировался нормально. Кажется, что информация Oracle неверна, и 1.3 не является исходным режимом по умолчанию. Какой же тогда?