解决命名空间之间的类命名冲突的最佳方法

时间:2011-07-04 11:41:30

标签: java namespace-organisation

我遇到了一个帮助类的问题,我正在努力翻译同名的两个类。这两个类都在我的控制范围之外,所以我不能简单地重命名它们。

我的基本选项都涉及至少为其中一种类型声明完整名称空间:

import com.myco.second.long.package.namespace.MyObject;
public class MyObjectConvertor {

    MyObject transform(com.myco.first.long.package.namespace.MyObject o) {}
}

或者相反的方法:

import com.myco.first.long.package.namespace.MyObject;
public class MyObjectConvertor {

    com.myco.second.long.package.namespace.MyObject transform(MyObject o) {}
}

或者声明两个名称空间,以获得更明确的模式:

public class MyObjectConvertor {

    com.myco.second.long.package.namespace.MyObject 
        transform(com.myco.first.long.package.namespace.MyObject o) {}
}

是否有其他解决方案可以整理这些方法签名?我想知道某种C ++“typedef”风格的解决方案是否可行?

1 个答案:

答案 0 :(得分:8)

无法整理签名,至少有一个类必须由完全限定的类名引用。

在您的特殊情况下,我甚至会说:不要导入任何这些类,在源代码中使用版本3,这样每个人都完全清楚,您的转换类与同名不同包中定义