なぜ私は、Android AIDEの最後の変数に新しい値を再度割り当てることができますか?

ムハンマドRokonuzzaman:

これはどのように可能ですか?どのように私は最終的としてマークされた変数を変更することができるのですか?

public class Main
{
    public static void main(String[] args)
    {
        final int NUM;

        NUM = 22;
        NUM = 33;

        System.out.println(NUM);
    }

}

私は、AndroidでAIDEアプリを使っていた...それは正常にコンパイルして印刷します33

スティーブンC:

あなたがこれを行うことができれば、それはAIDEアプリのバグです。あなたは、開発者に報告しなければなりません。ジャワのJLSに準拠した実装はの再割り当てを許可しませんfinal(このような)変数を。

あなたのバグレポートをサポートするために、彼らにJLSの仕様の参照を与えたい場合は:

JLS 4.12.4 final変数

変数は、最終的に宣言することができます。最終的な変数は一度だけに割り当てることができます。最後の変数は、それが直前に割り当て(に確実に割り当てられていない限りに割り当てられている場合、コンパイル時エラーが発生する§16(確実な代入))。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=166221&siteId=1