我正在将一个包(在我的例子中为 mongodb.DB)导入到一个具有相同名称的类的 java 文件中。
在 python 中,我知道我可以将模块导入为另一个名称以避免冲突。 Java是如何解决这个问题的呢?
更改我正在工作的类的名称是不可行的。
最佳答案
你说你正在“导入一个包...” - 你的意思是你正在导入一个包中的所有类,比如“a.b.c.*”?如果是这样,答案可能是仅导入您需要的那些类,而不是整个包。
无法将一个类导入为另一个类。
希望您的意思并不是“同名”,因为它们都具有相同的完全限定名称。如果是这样的话,你就完蛋了,我不知道你能做什么。希望您只是指两个不同包中的类名相同。
您可以用您自己的类扩展一个类,并使用您的新类代替扩展的类。换句话说,如果您要像 a.b.c.D 中那样导入类 D,并且还有另一个 D 类,则可以扩展其中的第一个类(类 Z 扩展 a.b.c.D),然后将其引用为 Z 而不是 D。您可能需要为 Z 提供与 D 中的构造函数相匹配的构造函数,但除此之外不需要任何代码。
并且类的完全限定名称将始终有效。
关于java - "The import [...] conflicts with a type defined in the same file"错误 [java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22443506/