【发布时间】:2014-05-25 08:58:10
【问题描述】:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls-6.2
规范说:
在确定名称的含义时(第 6.5 节),名称出现的上下文是 考虑到。 §6.5 的规则区分名称必须表示的上下文 (指)一个包(§6.5.3),一个类型(§6.5.5),一个变量或表达式中的值 (§6.5.6) 或方法 (§6.5.7)。
所以,据我了解,名称只能表示上述实体——不包含字段。
这似乎与下面的陈述一致:
并非程序中的所有标识符都是名称的一部分。标识符也用于 以下情况:
...
在字段访问表达式(第 15.11 节)中,标识符出现在“.”之后令牌 表示对象的成员,它是表达式的值或关键字 super 出现在“。”之前令牌
...
那么,我的问题是:局部变量和字段之间存在这种区别的原因是什么?
【问题讨论】:
-
你读过下面的例子和附带的解释吗?
-
是的,这只让我更加困惑。如果你能指出它是如何回答我的问题的,那就太好了!