作者macbuntu (邀怪)
看板java
标题[问题] 一个 java expression 里有两个 this
时间Fri Mar 27 21:52:52 2009
请问一下, Java 的一个 expression 里有机会出现一个以上的 this 或 super 吗?
从 Java 的 Grammar 看起来似乎允许:
Expression3 = Primary ( Selector )* ( PostfixOp )*
| ...
Primary =
"this" [ arguments ]
|
"super" SuperSuffix
| ...
Selector =
"." "this"
|
"." "super" SuperSuffix
| ...
但我却想不出哪种 expression 可以有多个 this 或 super 或混合使用的:
this.toString(); // OK
Foo.this.toString(); // OK
this.this.toString(); // Syntax Error
super.toString(); // OK
Foo.super.toString(); // OK
super.super.toString(); // Syntax Error
this.super.toString(); // Syntax Error
super.this.toString(); // Syntax Error
super.Foo.
this.toString(); // Syntax Error
是有什麽状况我没想到的吗? 还是 Java Grammar 那样写只是为了简单,
实际在语意处理的时候并不允许多个 this 或 super 出现在一个 expression 中?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.90.107
1F:推 huge:compiler? 03/27 22:56
2F:推 cgkm:"a grammar", not "the [one and only] grammar" 03/28 00:07
3F:→ cai7773:我记得this 跟 super只有一层,多层是错误的写法 03/28 23:05