2011-09-25 60 views
5

首先,我是新來的Java,所以我的問題可能是愚蠢的,但我仍然需要一個答案:)類名稱衝突導入新包(JAVA)所有的

我有處理顯示問題的一類。我將它命名爲「Display」,但問題是:我需要導入一個名爲org.lwjgl.opengl.Display的類。

當然,我有這樣的錯誤在我的Display類的語句:

「屏幕顯示」在此編譯單元

當然,我可以重命名我的課已經定義,但我想確保沒有辦法輕易繞過這個問題。

以一般的方式(因爲使用LWJGL這樣的遊戲庫,我想我會有很多這樣的),爲我的班級加上前綴以避免類似的標籤是更好的辦法嗎?

更新:該類已包含在包中。

package Graphics; 

import org.lwjgl.LWJGLException; 
import org.lwjgl.opengl.Display; 
import org.lwjgl.opengl.DisplayMode; 

public class Display { ... } 

感謝名單。

回答

19

如果您不能重命名自己的類,這將是最簡單的,那麼你可以通過不導入違規類,而是使用完全合格的包名,e.g

org.lwjgl.opengl.Display display = new org.lwjgl.opengl.Display()規避這一點。相反,您應該將自己的類放入包中,並且不要使用默認包,以便可以應用相同的方法來消除您自己的類的歧義。

+0

我剛剛在我的問題中添加了一些代碼。 – Cornelius

+1

@Cornelius:不要導入Display類,在需要時使用完全限定名,並且它會被編譯。 – JRL

+0

好吧,我認爲這不是一個正確的方法來做到這一點。 – Cornelius

0

當您的java類名和導入的庫名相同時,會發生這種情況。在你的情況下,掃描儀是指的類名不是爲圖書館。將類名更改爲其他內容將是解決錯誤的最簡單方法。

public class Foo { 

private static class Display {...} 

} 

也有助於解決問題。