如何在Java中导入两个同名类
现在我有点问题。我正在编写一个转换器函数,假设我想将一种类型的卡(一个类)转换为另一种类型(另一个类) 假设一个是foo.bar.Card,另一个是baz.banan.Card。我可以要一个如何在Java中导入两个同名类,java,Java,现在我有点问题。我正在编写一个转换器函数,假设我想将一种类型的卡(一个类)转换为另一种类型(另一个类) 假设一个是foo.bar.Card,另一个是baz.banan.Card。我可以要一个 import foo.bar.Card; 但我做不到 import foo.bar.Card; import baz.banan.Card; 因此,编译器无法区分它们 我可以只做其中一个,然后在另一个前面加前缀,这样我的代码中就有Card和baz.banan.Card,但我希望避免使用很长的名称。理想情
import foo.bar.Card;
但我做不到
import foo.bar.Card;
import baz.banan.Card;
因此,编译器无法区分它们
我可以只做其中一个,然后在另一个前面加前缀,这样我的代码中就有Card和baz.banan.Card,但我希望避免使用很长的名称。理想情况下,我希望使用bar.Card和banan.Card,但这可能吗?如果可能,如何使用?您有两种选择:
foo.bar.Card card = new foo.bar.Card();
baz.banan.Card otherCard = new baz.banan.Card();
foo.bar.Card card = new foo.bar.Card();
baz.banan.Card otherCard = new baz.banan.Card();
正如Whalberg所建议的,另一种选择是使用不同的名称创建包装类。不幸的是,他们的方法并不能真正做到这一点 我知道有两种稍微有用的解决方法: 期末班 使用与调用
Card
对象方法完全相同的方法,为其中一个Card
类创建包装类。不幸的是,这不是一个非常优雅的方法
可变类
创建一个扩展Card
的CardA
类,并将CardA
用作Card
类
不幸的是,你只有两个选择。如果这些方法不起作用,您将不得不使用完全限定名称。不幸的是,它们并不是实现这一点的真正方法 我知道有两种稍微有用的解决方法: 期末班 使用与调用
Card
对象方法完全相同的方法,为其中一个Card
类创建包装类。不幸的是,这不是一个非常优雅的方法
可变类
创建一个扩展Card
的CardA
类,并将CardA
用作Card
类
不幸的是,你只有两个选择。如果这些不起作用,您将不得不使用完全限定名。我能想到的唯一方法是将其中一个包装到名为“different”的虚拟类中!我想那是不可能的(如中所述,如果您不需要访问
静态
变量和函数,您可以扩展其中一个。我唯一能想到的方法是将其中一个封装到名为“different”的虚拟类中!我认为没有办法:(如中所述,如果您不需要访问静态
变量和函数,您可以扩展其中的一个。他明确表示,他不想为对象添加前缀,以避免使用很长的名称1。在我的情况下,这不是一个选项。2.这是我不想做的。那么,没有办法将这些类分开。编译器怎么知道呢当你写卡片时,如果你没有提供完全限定的名称,你指的是包X,在另一种情况下指的是包Y?有时你想避免一些东西,但如果设计不允许,你的选择是有限的。第三种选择是将其中一个类包装在一个新类中,该类将委托给包装的类。他说ely说他不想为对象添加前缀以避免使用很长的名称1.在我的情况下,这不是一个选项。2.这是我不想做的。那么,没有办法将这些类分开。编译器如何知道,当您编写卡时,您指的是包X,而在另一种情况下,如果您没有提供完全限定符,则指包Yed name?有时您希望避免某些内容,但如果设计不允许,则您的选项是有限的。第三个选项是将其中一个类包装到一个新类中,该类将委托给包装的类。