2011-06-13 50 views
2

如果我在包a.b.c中有類名ClassX,並且我想導入類a.b.x.ClassX在Java中,在具有相同名稱的類中導入名爲ClassX的類時是否存在限制?

Java在阻止我這樣做時是否存在一些限制?就使用情況而言,我總是可以使用導入類的完全限定名稱,對嗎?

Eclipse似乎無法解決此導入問題,我需要知道是否存在導致此問題的Java本身的限制。

是下面的代碼合法:

A \ B \ C \ ClassX.java:

package a.b.c; 
public class ClassX { 
// 
} 

A \ B \ X \ ClassX.java:

package a.b.x; 

import a.b.c.ClassX; 

public class ClassX { 
    public static void main(String[] args) { 
     a.b.c.ClassX newObj = new a.b.c.ClassX(); 
    } 
} 

如果沒有, 那麼爲什麼?

回答

3

您不能導入類相同,因爲它會導致名稱衝突。您必須使用完全限定的名稱,例如;讓我們來說明一下,如果我們從package a中導入class B,

package b; 

import a.B; 

class B { 
    B objectB ; // illegal.. which B, package a or package b.. 
    b.B objectbB; //legal 
    a.B objectaB; //legal 

} 
+2

'你不能導入與same'類,同樣什麼? – 2011-06-13 08:43:11

+0

+1,但我會建議充實一下你的答案,以幫助新手。 – Mikaveli 2011-06-13 08:44:10

1

我覺得沒什麼,但不是a.b.c.Classx newObj = a.b.c.ClassX(),寫a.b.c.ClassX newObj = a.b.c.ClassX()(Class_X_,沒有Class_x_),它應該工作:-)

+0

這是一個錯字:( – 2011-06-13 10:36:16

相關問題