为什么const关键字没有在Java中使用?

可能重复:
为什么Java中没有Constant关键字?

为什么const关键字没有在Java中使用?
你能看到在Java语法中使用一些传递const或不可变关键字的缺点,或者为什么选择常见的繁琐方法 ?

你能看到关闭请求的 原因 ,Sun是否提供了任何解释?

你能看到关闭请求的原因,Sun是否提供了任何解释?

是。 Sun提供了3个理由,说明为什么他们不会在请求中对请求本身采取行动。 我引用:

“目前还没有计划将这个function添加到Java中。除了爬行function之外,我们还看到了此function的以下问题:

  • 添加const现在已经太晚了。 如果从1.0添加,情况可能会有所不同。

  • Const污染:C ++方法要求所有const方法都用const关键字标记。 这意味着大多数方法必须明确标记为const。 这往往会混淆C ++中的所有方法。

  • 兼容性是JDK的一个非常重要的特性。 可以说,应该修改集合类以指示元素是const。 这将要求以相同的方式更新所有现有实现,从而有效地破坏集合接口的所有现有非JDK实现。 同样,hashCode必须是const,打破String的当前实现。“


UPDATE

出于好奇,我花了几分钟时间浏览了Project COIN邮件列表的主题 。 令我惊讶的是,没有人打扰建议const 。 (或者如果他们这样做了,我就错过了。)

因此,任何一个人都不再关心(足够)这个想法,或者具有足够专业知识来制定项目COIN提案的人认识到它没有机会通过集合。

实际上, 你链接的维基百科文章有你的答案:

Java社区流程中存在用于实现const正确性的增强请求票证,但是在2005年因为无法以向后兼容的方式实现而关闭。

它没有被使用,因为它在Java中没有function。 我引用维基百科 :

虽然在Java中保留为关键字,但const不使用且没有function。

因此你应该使用final

这是另一个可能更可靠的来源。

使用final关键字..它会为你做与const关键字相同的事情