const
Javaの予約キーワードなのに機能がないのはなぜですか? final
彼らが代わりに使用することに決めた場合、持つ意味はconst
何ですか?
6 に答える
JLSから:
キーワード
const
andgoto
は予約されていますが、現在は使用されていません。これにより、これらの C++ キーワードがプログラムに誤って表示された場合に、Java コンパイラがより適切なエラー メッセージを生成できるようになります。
歴史的な観点から、2003 年のJosh Blochによる次の引用を提供できます。
const
Josh Bloch: このキーワードのサポートを Java 言語に追加する予定はありません。これは、C++ では複雑な祝福でした。ご存知のように、これは単なるアドバイスであり、オンまたはオフにすることができます。ゴスリングはそれを嫌い、final
代わりにしました。あなたが本当に欲しいのは「不変」ですが、これを適切に機能させるのは研究課題です。
Java 1.0 より前の設計者に元の動機を尋ねる必要がありますが、私は彼らが単純に選択肢を開いたままにしていたと推測します。goto
予約語は別の例です。
私の推測では、JLS で見つかった「aix」というテキストは「事後」の合理化です。なんで?、、struct
などunion
はunsigned
Java の予約語ではないためです。要するに、私はそれを購入しません... JLSが何を主張しても:-)
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
「キーワード const と goto は予約されていますが、現在は使用されていません。」
正確な背景についてはわかりませんが、おそらくそれらはJavaの一部でしたか?
予約済みのキーワードです。ユースケースや機能はありません
キーワードの予約は、Java 言語の拡張機能に C++ スタイルの const メソッドと const 型へのポインターを含めることができるようにするために発生したと考えられています。Java で const の正確性を実装するための Java コミュニティ プロセスの拡張要求チケットは 2005 年に終了しました。
JLSから -
「キーワード const と goto は現在使用されていませんが、予約されています。これにより、これらの C++ キーワードがプログラムに誤って表示された場合に、Java コンパイラがより適切なエラー メッセージを生成できる可能性があります」