我想導入這兩個類,並重命名爲Query
- 一個JDO類,另一個是JPA類,以不同的方式在同一個類中使用。如何在不同的包中導入兩個具有相同名稱的類?
import javax.jdo.Query;
import javax.persistence.Query;
有沒有辦法在文件頂部同時全局導入它們兩個?
我想導入這兩個類,並重命名爲Query
- 一個JDO類,另一個是JPA類,以不同的方式在同一個類中使用。如何在不同的包中導入兩個具有相同名稱的類?
import javax.jdo.Query;
import javax.persistence.Query;
有沒有辦法在文件頂部同時全局導入它們兩個?
恐怕沒有。但你不必進口類中使用它:剛纔提到的一個類由它的全名,如
javax.jdo.Query query = getJDOQuery();
query.doSomething();
然後你可以導入另一個沒有名稱衝突。
順便說一句,有時如果你開始得到很多這樣的名稱這種碰撞在你的類,它是重構一個微妙的暗示:幾個小之間的一個大類的分裂功能。
的import
聲明的唯一目的是建立一個速記別名一個完全合格的名稱。如果你被允許進口的兩種,你會創建需要的類型推斷來解決,並且使你的代碼非常難以閱讀的歧義。
@Ment - 嗯,Java語言不允許,而且它不支持typedef'的'相當於兩種。 – 2010-09-17 00:02:35
當然,這將是很酷,但它不工作的方式(還)。 – erickson 2010-09-17 03:26:41