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 -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はデフォルトのソースモードではありません。それではどちらですか?

4

1 に答える 1

1

Java 7では、 Oracleのドキュメントによるとデフォルトのソースモードは1.7です(-sourceオプションを参照)。参照しているドキュメントはおそらく更新する必要があります

于 2012-11-11T11:17:16.223 に答える