为什么有些标识符在java中是非法的?

时间:2014-10-19 08:54:24

标签: java identifier

众所周知,java中的合法标识符是那些必须以字母,货币字符($)或连接字符(如下划线(_))开头的标识符。

标识符不能以数字等开头,(“:”,“ - ”,“e#”,“。f”等)

所以我的问题是为什么java将这些关键字限制为非法标识符。

1 个答案:

答案 0 :(得分:7)

原因是您希望更轻松地解析语言,并防止出现不切实际的情况。我们假设您可以调用变量" -velocity"而不是" negative_velocity"。现在这个术语是什么意思?

h = foo - -velocity

这是从foo中减去负速度,还是否定速度,然后从foo中减去它?对于其他角色也是如此,例如既被用作属性访问操作符(foo.bar)又被用作浮点(.78)的一部分。清单继续。

可以允许所有这些,但是你必须有一个多阶段解析过程,你必须解析源一次的标识符声明,然后解析它< em>再次,尝试&amp;找出它们的用途。有了这个,您最终可能会遇到这样的情况 - 通过导入 - 使现有代码无效,直到那时为止是明确的,但是现在声明&#34; -velocity&#34;作为标识符,然后上面的表达式是ambigous)