2011-04-20 64 views
3

如果我有一個類A和一個B這是A的內部類。 另外我還有另外一類B。這不是在A如何避免內部課堂名稱衝突?

class A { 
    ... 
    class B { 
     ... 
    } 
    ... 
} 

class B { 
    ... 
} 

如何使A的外B實例?

class A { 
    B name = new B(); 
} 

將得到一個內部B的實例。

+0

[Java內部類與其他頂級類同名]的可能重複(http://stackoverflow.com/questions/5897853/java-inner-class-with-the-same-name-as-other -top-level-class) – 2013-01-30 16:09:50

回答

8

指定外部B的完全限定名稱。如果B在包com.acme中,則請說com.acme.B name = new com.acme.B();

+2

永遠不要使用默認包的好理由!在某些情況下,如果使用默認包(「」),則根本無法消除歧義。我猜這會是這樣的情況。 – 2011-04-20 14:59:32

+0

@Mark:100%同意。 – 2011-04-20 14:59:50