Java “的目的是什么?”;常数;关键词?

Java “的目的是什么?”;常数;关键词?,java,Java,为什么const在Java中是一个保留关键字,但没有任何功能?如果他们决定使用final,那么使用const又有什么意义呢? 关键字const和goto是保留的,即使它们当前未被使用 我不知道确切的背景,但也许它们曾经是java的一部分?来自: 关键字const和goto保留,即使它们当前未使用这可能允许java编译器在程序中错误地出现C++关键字时产生更好的错误消息。< /强> 从历史的角度来看,从2003年起,我可以向您提供以下信息: Josh Bloch:我们没有计划在Java语言中添加

为什么
const
在Java中是一个保留关键字,但没有任何功能?如果他们决定使用
final
,那么使用
const
又有什么意义呢?

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

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

来自:

关键字
const
goto
保留,即使它们当前未使用<强>这可能允许java编译器在程序中错误地出现C++关键字时产生更好的错误消息。< /强>

从历史的角度来看,从2003年起,我可以向您提供以下信息:

Josh Bloch:我们没有计划在Java语言中添加对
const
关键字的支持。这是一个混合祝福在C++中;正如你所知道的,这只是一个建议,可以开也可以关。小鹅讨厌它,取而代之的是
final
。你真正想要的是“不变的”,但要让它正常工作是一个研究问题


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

您需要让Java 1.0之前的设计师找出他们最初的动机,但我猜他们只是在保留他们的选择。
goto
保留字是另一个例子

我的猜测是,在JLS中找到的“aix”文本是一种“事后”合理化。为什么?因为
struct
union
unsigned
等等在Java中不是保留字!总之,我不相信。。。无论JLS声称什么:-)

人们认为保留关键字是为了允许Java语言的扩展包括C++风格的常量方法和指向常量类型的指针。Java社区进程中用于在Java中实现const-correction的增强请求票证于2005年关闭,这意味着const-correction可能永远不会进入正式的Java规范

来自JLS-


“关键字>”和“GOTO”是保留的,即使它们目前没有使用。如果这些C++关键字错误地出现在程序“

可能的副本@ ToasasZurkKeWiCiz:对我来说,这似乎是完全不同的问题,这可能允许java编译器产生更好的错误消息。(这是关于语义的,而这一个纯粹是关于关键词的)。是的……但请看我的答案:-)@StephenC:我不是Java历史学家。然而,我不认为布洛赫在描述小鹅对
const
的态度时使用“恨”一词与后者“保持他的选择开放”是一致的我认为布洛赫的意思是,GORLY讨厌C++中的<代码> const <代码>的方式…不是实际的关键字。此外,小鹅也是团队的一员。Block说“让它正常工作是一个研究问题”,这与他们把
const
作为一个保留字来保留选项的做法是一致的。。。对结构体、联合体等等都不这样做。@StephenC:也许吧。无论如何,我们都在猜测,可能永远不会知道实际的事前想法。