[問題] 這算是 Java 語法的漏洞嗎?
做個頭腦體操, 看看下面這兩個 class:
class Foo {
static String name;
}
class A {
static Foo B = new Foo();
static class B {
static String name;
}
}
之後在別處寫到:
A.B.name = "abc";
這樣 compiler 並不會抱怨是 ambiguous, 而是將 A.B.name resolve 成為
A.B.name , 頂多只有個 warning 說 static field 'name' 應該
要以 static reference 去操作, 也就是 Foo.name 會比較好.
糟糕的是, 除非靠 reflection, 否則完全沒有辦法用到 A.B.name 耶?
這樣狀況 compiler 應該當成 ambiguous 比較好吧, 否則這變成是語法的瑕疵,
合乎 Java 語法的程式, 卻有東西完全無法存取得到?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.27.29
※ 編輯: macbuntu 來自: 220.135.27.29 (11/09 22:11)
推
11/09 22:21, , 1F
11/09 22:21, 1F
→
11/09 22:22, , 2F
11/09 22:22, 2F
推
11/10 01:28, , 3F
11/10 01:28, 3F
推
11/10 06:04, , 4F
11/10 06:04, 4F
推
11/10 09:23, , 5F
11/10 09:23, 5F
推
11/16 20:57, , 6F
11/16 20:57, 6F
→
11/16 20:59, , 7F
11/16 20:59, 7F