0

メソッドに対してローカルな変数を final として宣言できない理由を知りたいです。具体的な理由はありますか?

Javaにはローカル定数がないということですか?

4

4 に答える 4

8

それらは最終的であると宣言できます。あなたの実際の問題は別の場所にあります。

于 2010-01-25T19:05:42.097 に答える
5

Java 仕様 §4.5.4から:

変数は final として宣言できます。final 変数は 1 回だけ割り当てることができます。割り当ての直前に割り当てが確実に解除されていない限り (§16)、最終的な変数が割り当てられると、コンパイル時エラーになります。

言い換えれば、それは完全に合法です。さらに、可能な限りローカル変数を使用することをお勧めします。final

ローカル変数で一貫して final を使用することも (適切な場合)、同様に役立ちます。[...] 合理的なアプローチは、メソッドに少なくとも 1 つの非最終ローカル変数がある場合にのみ、ローカル変数に最終を使用することです。これにより、非最終ローカル変数を他のローカル変数とすばやく区別できます。

于 2010-01-25T19:06:17.790 に答える
1

誰ができないと言った。私たちは宣言することができます。メソッドで使用できない static と混同している可能性があります。

于 2010-01-25T19:15:25.737 に答える
0

愚かな間違い!おそらく、参照変数について言及するのを忘れていて、Eclipse は「トークン "final" の構文エラー、無効な型」のように文句を言います。 SOでここで質問したとき、そのばかげた間違いに気づかなかったと確信してfinal Pojo = new Pojo();いる場合、完全に機能しているのに参照変数が欠落している例。final Pojo pojo = new Pojo();

于 2015-04-07T12:17:54.697 に答える