我的应用程序中有两个类具有相同的名称,我无法重命名它们,它们来自packageA,第二个来自packageB,这个类的名称是State,我必须在我的程序中的一个地方使用它这个:
Map<Integer,Set<org.omg.PortableServer.POAManagerPackage.State>>
有没有办法(但是使用这个类)使它更具可读性(稍微缩短一点)?
答案 0 :(得分:4)
可能来自其中一个类以消除歧义。例如,在POAState.java
:
import org.omg.PortableServer.POAManagerPackage.State;
public class POAState extends State {}
然后:
Map<Integer,Set<POAState>> my_map;
答案 1 :(得分:0)
创建仅包含Set<org.omg.PortableServer.POAManagerPackage.State>
和所有必需Set
方法的包装类。
在客户端使用:
Map<Integer,GoodWrappingSetName>
答案 2 :(得分:0)
如果在同一段代码(* .java文件)中使用两个不同的State
类,则答案为“否”,Java不提供简写符号。您必须明确并包含完整的包名称以消除歧义。
@dantuch已经提出了一个有趣的想法,但是如果你可以扩展其中一个,而不是包装类,你可以创建一个空的子类State
,它只是将它的所有实现推迟到父类类。
public MyState extends State {
// no implementation required
}
然后你可以参考MyState