6

我正在使用一个帮助类来在两个同名的类之间进行翻译,我遇到了一个问题。这两个类都超出了我的控制范围,所以我不能简单地重命名它们。

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

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”风格的解决方案是否可能?

4

1 回答 1

8

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

在您的特殊情况下,我什至会说:不要导入任何这些类,在源代码中使用版本 3,以便每个人都充分意识到,您的转换类在不同的包中定义了相同的名称

于 2011-07-04T11:59:17.090 回答