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 -version javac 1.7.0_04 $ javac -d bin src / mm / * src \ mm \ ClassTest.java:5:エラー:リリース1.4以降、「assert」はキーワードであり、識別子として使用できない場合があります int assert = 1; ^ (識別子として「assert」を使用するには、-source 1.3以下を使用します) src \ mm \ ClassTest.java:6:エラー:リリース1.4以降、「assert」はキーワードであり、識別子として使用できない場合があります System.out.println(assert); ^ (識別子として「assert」を使用するには、-source 1.3以下を使用します) 2つのエラー
手動で追加-source 1.3
すると警告が表示されましたが、正常にコンパイルされました。Oracleの情報は間違っているようで、1.3はデフォルトのソースモードではありません。それではどちらですか?