2012-06-03 28 views
0

我用下面一個大衆進口類組:在java中驅逐類?

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.*; 
import java.io.*; 
import java.text.*; 
import java.util.regex.*; 

這樣我就不必擔心留下任何班列。

後來,當我使用List我得到這個錯誤:

reference to List is ambiguous, both class java.util.List in java.util and class java.awt.List in java.awt match

我該如何解決這個問題?有沒有辦法驅逐其中一個班級?哪一個更好?

+0

通常的做法是讓IDE管理您的導入。 –

回答

3

在整個此類文件中,您需要使用完全限定名稱java.util.Listjava.awt.List來引用這些類型。

這將消除兩個List s,因此它不會嚴格地「驅逐」任何東西(您的import語句可以保持不變)。不過,我同意其他答案的建議,即整理您的進口。

如果List小號之一是「驅逐出境」,那麼,它可以讓你通過它的短名稱指的是其他List

2

首先,你不應該像這樣導入整個軟件包。你應該只包括需要的東西。 IDEs有選擇,他們會爲你包括任何需要的東西。至少Eclipse是這樣做的。對於詳細閱讀它的缺點你可以通過下面的鏈接:

但是,如果它是絕對必要的,然後可以通過參考這些模棱兩可的班級,他們完全合格的名字來避免歧義例如,你的情況

  • java.util.List AND/OR java.awt.List
0

解決的辦法是不要導入類似的東西。使用IDE之類的IDE來管理您的導入。

+0

您不必使用IDE。並不是每個人都喜歡使用Eclipse。 – Makoto

+0

確實是我的朋友 – Barakados

+0

剛開始使用該語言的人會很好地使用IDE。 – Marvo

0

始終只會導入您在特定程序中使用的類。對於具有相同名稱但類似於您正在使用的List類的包的類,可以使用它們的完全限定名稱而不是導入語句來指定