在Python中,您可以执行以下操作:

from a import b as c

在Java中如何做到这一点,因为我有两个冲突的导入。


当前回答

可能值得注意的是,Groovy有这样的特性:

import java.util.Calendar
import com.example.Calendar as MyCalendar

MyCalendar myCalendar = new MyCalendar()

其他回答

今天我向OpenJDK提交了关于这个别名特性的JEP草案。我希望他们能重新考虑。

如果您感兴趣,可以在这里找到JEP草案:https://gist.github.com/cardil/b29a81efd64a09585076fe00e3d34de7

Java不允许这样做。您需要通过其中一个类的全限定名引用它,而只导入另一个类。

Java中没有导入别名机制。不能导入两个同名的类,并且都使用非限定类。

导入一个类,并对另一个类使用完全限定名,即。

import com.text.Formatter;

private Formatter textFormatter;
private com.json.Formatter jsonFormatter;

可能值得注意的是,Groovy有这样的特性:

import java.util.Calendar
import com.example.Calendar as MyCalendar

MyCalendar myCalendar = new MyCalendar()

正如前面提到的,Java不提供这个特性。

该特性的实现已经被多次请求,例如JDK-4194542:类名别名或JDK-4214789:扩展导入以允许重命名导入类型。

评论如下:

这不是一个不合理的要求,尽管不是必要的。偶尔的 使用完全限定名不会造成不必要的负担(除非库 左右重复使用相同的简单名称,这是糟糕的风格)。 在任何情况下,它都没有通过一种语言的价格/性能标准 改变。

所以我猜我们不会很快在Java中看到这个特性:-P