如何使用两个具有相同名称的类在Java中导入

时间:2015-11-06 13:07:24

标签: java

现在我有点问题。我正在写一个转换器函数,让我们说我想将一种类型的卡(一类)转换为另一种类型(另一类)。

让我们说一个是foo.bar.Card,另一个是baz.banan.Card。我可以有一个

import foo.bar.Card;

但我无法做到

import foo.bar.Card;
import baz.banan.Card;

然后编译器无法区分它们。

我只能做其中一个然后加上另一个,所以我的代码中有Card和baz.banan.Card,但我想避免使用很长的名字。理想情况下,我想使用bar.Card和banan.Card,但这是可能的,如果是这样的话?

2 个答案:

答案 0 :(得分:4)

您有两个选择:

  1. 将您的班级重命名为唯一名称
  2. 使用完全限定名称引用您的班级名称:

    foo.bar.Card card = new foo.bar.Card();
    baz.banan.Card otherCard = new baz.banan.Card();
    
  3. 另一个选择,正如whaleberg建议的那样,是创建一个具有不同名称的包装类。

答案 1 :(得分:1)

不幸的是,他们并不是真正的方法。

我知道两个有用的解决方法:

最终成绩

使用与调用Card对象方法完全相同的方法为其中一个Card类创建包装类。不幸的是,这不是一种非常优雅的方法。

可变类

创建一个CardA类,其扩展Card并使用CardA作为Card类。

不幸的是,这些只有两种选择。如果这些不起作用,则必须使用完全限定名称。