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


问题内容

为什么在Java中不使用const关键字?
您能看到在Java语法中使用某些可传递const或不可变关键字的任何缺点,还是为什么选择了常见的繁琐方法

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


问题答案:

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

是。Sun在请求本身中提供了三个为什么不对请求执行操作的原因。我引用:

“目前尚无计划将此功能添加到Java中。除了蔓延的特性主义外,我们还发现此功能存在以下问题:

  • 现在添加const为时已晚。如果从1.0开始添加,情况可能会有所不同。

  • 常量污染:C 方法要求所有const方法都必须用const关键字标记。这意味着大多数方法将必须显式标记为const。这往往会使C

    中的所有方法混乱。

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


更新

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

因此,要么没人在乎(足够)这个想法,要么有足够专业知识来制定项目COIN提案的人意识到,它没有机会通过要求。