7

constJavaの予約キーワードなのに機能がないのはなぜですか? final彼らが代わりに使用することに決めた場合、持つ意味はconst何ですか?

4

6 に答える 6

11

JLSから:

キーワードconstandgotoは予約されていますが、現在は使用されていません。これにより、これらの C++ キーワードがプログラムに誤って表示された場合に、Java コンパイラがより適切なエラー メッセージを生成できるようになります。

歴史的な観点から、2003 年のJosh Blochによる次の引用を提供できます。

constJosh Bloch: このキーワードのサポートを Java 言語に追加する予定はありません。これは、C++ では複雑な祝福でした。ご存知のように、これは単なるアドバイスであり、オンまたはオフにすることができます。ゴスリングはそれを嫌い、final代わりにしました。あなたが本当に欲しいのは「不変」ですが、これを適切に機能させるのは研究課題です。

于 2012-05-31T08:00:20.237 に答える
3

Java 1.0 より前の設計者に元の動機を尋ねる必要がありますが、私は彼らが単純に選択肢を開いたままにしていたと推測します。goto予約語は別の例です。

私の推測では、JLS で見つかった「aix」というテキストは「事後」の合理化です。なんで?、、structなどunionunsignedJava の予約語ではないためです。要するに、私はそれを購入しません... JLSが何を主張しても:-)

于 2012-05-31T08:00:40.720 に答える
2

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

「キーワード const と goto は予約されていますが、現在は使用されていません。」

正確な背景についてはわかりませんが、おそらくそれらはJavaの一部でしたか?

于 2012-05-31T07:59:30.897 に答える
1

予約済みのキーワードです。ユースケースや機能はありません

于 2012-05-31T08:00:26.657 に答える
0

キーワードの予約は、Java 言語の拡張機能に C++ スタイルの const メソッドと const 型へのポインターを含めることができるようにするために発生したと考えられています。Java で const の正確性を実装するための Java コミュニティ プロセスの拡張要求チケットは 2005 年に終了しました。

于 2012-05-31T08:02:43.630 に答える
0

JLSから -

「キーワード const と goto は現在使用されていませんが、予約されています。これにより、これらの C++ キーワードがプログラムに誤って表示された場合に、Java コンパイラがより適切なエラー メッセージを生成できる可能性があります」

于 2012-05-31T08:09:39.110 に答える