Java用於解析虛線標識符的規則是什麼?Java分析虛線標識符
例如:
import Foo.Bar;
class Foo
{
public static class Bar
{
};
};
現在,Foo.Bar
可以指導入的類Bar
或在源代碼中定義的一個。這種歧義如何解決?
我已經試過這一個案例,所以我知道在實踐中會發生什麼,但我正在尋找更多的東西;我想知道基本規則。例如,如果源文件中存在Foo.Bar
,我仍然可以參考導入的類Foo.Bar.Baz
?如果Foo.Bar
是一個包,也是一個類,該怎麼辦?如果編譯器在最接近的Foo
中找不到Foo.Bar
,它只是放棄,還是繼續尋找其他Foo
s,直到它用完或發現匹配?
(順便說一句,我發現在語言規範的相關位。它沒有太大的幫助...)
如果所有代碼都遵循推薦的Java命名約定,那麼永遠不會出現這種情況:程序包名稱始終完全小寫,類名始終以大寫字母開頭。如果你的代碼不遵循這個約定,那麼你在語言規範中看到的就是你所得到的。 – 2011-06-13 14:29:21
是的,但不是我在問什麼...... – 2011-06-13 15:03:41
沒錯,這就是爲什麼我的評論是評論,而不是答案。 ;-) – 2011-06-13 15:16:20