2011-08-16 43 views
1

假設您已經創建了一個名爲X的類,並且類X中的一個方法需要返回類X的一個實例,但是這次類X具有相同的名稱,但它是另一個類類從一個剛好具有相同名稱的jar文件中獲得。有沒有辦法引用你想要的X類?使用同名類的類

+1

第一句太長,難以理解。你能告訴我們你的問題到底是什麼嗎? – Dimitri

+0

我相信這線程回答你的問題: [http://stackoverflow.com/questions/2079823/importing-two-classes-with-same-name-how-to-handle][1] [1]:http://stackoverflow.com/questions/2079823/importing-two-classes-with-same-name-how-to-handle –

回答

3

只要它們具有不同的包名稱,請參閱其他jar文件中的完全限定名稱的類,如com.packagename.X中所述。

1

是的,通過指定完全限定的類名(因爲在同一個包中不能包含2個相同的類名)。

E.g.假設你有2類具有相同名稱(在2 diferent包)

za.org.myDomain.factory.ClassAFactory
za.org.myDomain.subDomain.factory.ClassAFactory

並只進口了類1:

import za.org.myDomain.factory.ClassAFactory; 

你可以做這樣的東西(例如,在抽象類ClassFactory):

public abstract ClassAFactory getAFactory(); 
public abstract za.org.myDomain.subDomain.factory.ClassAFactory getFactory(); 

由於您完全限定了返回類型,所以第二次導入不必具有import聲明。

0

你必須用全名來引用它,比如:com.something.something.ClassName

0

具有相同名稱的所有類駐留在一個單獨的包(不同的名字,因爲他們在不同的文件夾)。這樣班級變得毫不含糊。

只要小心你當時的包裝。換句話說,請注意您使用的Java名稱解析技術。