在Python中,您能夠執行如下操做: java
from a import b as c
您將如何在Java中執行此操做,由於我有兩個衝突的導入。 json
Java中沒有導入別名機制。 您不能導入兩個具備相同名稱的類,而且不能同時使用它們。 spa
導入一個類,併爲另外一個類使用徹底限定名稱,即 code
import com.text.Formatter; private Formatter textFormatter; private com.json.Formatter jsonFormatter;
Java不容許您這樣作。 您須要經過其全限定名來引用其中一個類,而僅導入另外一個。 orm
值得注意的是Groovy具備此功能 : get
import java.util.Calendar import com.example.Calendar as MyCalendar MyCalendar myCalendar = new MyCalendar()
正如其餘答案所述,Java不提供此功能。 io
已屢次要求實現此功能,例如,做爲JDK-4194542:類名別名或JDK-4214789:擴展導入以容許重命名導入的類型 。 class
從評論: import
這不是一個不合理的請求,儘管不是很必要。 偶爾使用全限定名稱並非一個不適當的負擔(除非庫確實左右重複使用相同的簡單名稱,這是很差的樣式)。 擴展
不管如何,它不會超過語言更改的性價比。
因此我想咱們很快將不會在Java中看到此功能:-P
實際上,能夠建立一個快捷方式,以便經過執行如下操做在代碼中使用較短的名稱:
package com.mycompany.installer; public abstract class ConfigurationReader { private static class Implementation extends com.mycompany.installer.implementation.ConfigurationReader {} public abstract String getLoaderVirtualClassPath(); public static QueryServiceConfigurationReader getInstance() { return new Implementation(); } }
這樣,您只需指定一次長名稱,就能夠擁有多個想要的特殊命名的類。
我喜歡這種模式的另外一件事是,您能夠將實現類命名爲與抽象基類相同的名稱,並將其放置在不一樣的命名空間中。 不過,這與導入/重命名模式無關。