Pythonでは、次のことができます。
from a import b as c
衝突する2つのインポートがあるので、Javaでこれをどのように行いますか。
Javaにはインポートエイリアシングメカニズムはありません。同じ名前の2つのクラスをインポートして、両方を非修飾で使用することはできません。
一方のクラスをインポートし、もう一方のクラスに完全修飾名を使用します。
import com.text.Formatter;
private Formatter textFormatter;
private com.json.Formatter jsonFormatter;
import Java.util.Calendar
import com.example.Calendar as MyCalendar
MyCalendar myCalendar = new MyCalendar()
他の回答で既に述べたように、Javaはこの機能を提供しません。
この機能の実装は複数回要求されています。 as JDK-4194542:クラス名のエイリアス または JDK-4214789:インポートを拡張して、インポートされたタイプの名前を変更できるようにする .
コメントから:
これは不当な要求ではありませんが、ほとんど必須ではありません。完全修飾名をときどき使用することは、過度の負担ではありません(ライブラリが実際に同じ単純な名前を左右に再利用しない限り、スタイルが悪い)。
いずれにせよ、言語の変更に対する価格/性能の基準を満たしていません。
だから、すぐにJavaにこの機能が表示されることはないと思います:-P
Javaではそれができません。完全修飾名でクラスの1つを参照し、もう1つだけをインポートする必要があります。
今日、このエイリアス機能についてJEPドラフトをOpenJDKに提出しました。彼らがそれを再考することを願っています。
興味がある場合は、ここでJEPドラフトを見つけることができます。 https://Gist.github.com/cardil/b29a81efd64a09585076fe00e3d34de7