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

sea*_*ges 6 java namespace-organisation

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

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

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

    MyObject transform(com.myco.first.long.package.namespace.MyObject o) {}
}
Run Code Online (Sandbox Code Playgroud)

或者相反的方法:

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

    com.myco.second.long.package.namespace.MyObject transform(MyObject o) {}
}
Run Code Online (Sandbox Code Playgroud)

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

public class MyObjectConvertor {

    com.myco.second.long.package.namespace.MyObject 
        transform(com.myco.first.long.package.namespace.MyObject o) {}
}
Run Code Online (Sandbox Code Playgroud)

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

And*_*s_D 8

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

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