什么是“const”关键字的目的?

时间:2012-05-31 07:57:43

标签: java

为什么const是Java中的保留关键字但没有功能?如果他们决定使用final,那么最后是const

6 个答案:

答案 0 :(得分:10)

来自JLS

  

关键字constgoto是保留的,即使它们当前未被使用。 如果这些C ++关键字错误地出现在程序中,这可能允许Java编译器生成更好的错误消息。

从历史的角度来看,我可以从2003年quote提供以下Josh Bloch

  

Josh Bloch:我们没有计划在Java语言中添加对const关键字的支持。这是C ++的混合祝福;如你所知,它仅仅是建议性的,可以开启或关闭。戈斯林讨厌它,并改为final。你真正想要的是“不可改变的”,但要使这项工作正常,这是一个研究问题。

答案 1 :(得分:3)

你需要让Java 1.0前设计师找出他们的原始动机,但我猜测他们只是保持他们的选择开放。 goto保留字是另一个例子。

我的猜测是,“aix”在JLS中找到的文本是“postfacto”合理化。为什么?因为structunionunsigned等不是Java中的保留字!简而言之,我不买它......无论JLS声称: - )

答案 2 :(得分:2)

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

“关键字const和goto是保留的,即使它们当前未被使用。”

我不知道确切的背景,但也许他们曾经是java的一部分?

答案 3 :(得分:1)

仅保留关键字。它没有任何用例或功能

答案 4 :(得分:0)

  

认为关键字的保留是为了允许Java语言的扩展包括C ++样式的const方法和指向const类型的指针。用于在Java中实现const正确性的Java Community Process中的增强请求票证于2005年关闭,这意味着const正确性可能永远不会进入官方Java规范。

答案 5 :(得分:0)

来自JLS -

“关键字const和goto是保留的,即使它们当前未被使用。如果这些C ++关键字错误地出现在程序中,这可能允许Java编译器产生更好的错误消息”