作者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
推 huge:compiler? 03/27 22:56
推 cgkm:"a grammar", not "the [one and only] grammar" 03/28 00:07
→ cai7773:我記得this 跟 super只有一層,多層是錯誤的寫法 03/28 23:05