En Python, vous pouvez faire un:
from a import b as c
Comment feriez-vous cela en Java, car j'ai deux importations qui s'affrontent.
Il n'y a pas de mécanisme d'alias d'importation en Java. Vous ne pouvez pas importer deux classes du même nom et les utiliser toutes les deux sans réserve.
Importez une classe et utilisez le nom complet de l’autre, c.-à-d.
import com.text.Formatter;
private Formatter textFormatter;
private com.json.Formatter jsonFormatter;
Il est probablement intéressant de noter que Groovy a cette fonctionnalité :
import Java.util.Calendar
import com.example.Calendar as MyCalendar
MyCalendar myCalendar = new MyCalendar()
Comme les autres réponses l'ont déjà indiqué, Java ne fournit pas cette fonctionnalité.
L'implémentation de cette fonctionnalité a été demandée plusieurs fois, par exemple as JDK-4194542: aliasing du nom de classe ou JDK-4214789: Importation étendue pour permettre de renommer un type importé .
D'après les commentaires:
Ce n’est pas une demande déraisonnable, bien qu’à peine indispensable. L'utilisation occasionnelle de noms qualifiés complets ne constitue pas une charge excessive (à moins que la bibliothèque ne réutilise réellement les mêmes noms simples à droite et à gauche, ce qui est un mauvais style).
En tout état de cause, cela ne dépasse pas la barre prix/performance pour un changement de langue.
Donc, je suppose que nous ne verrons pas cette fonctionnalité dans Java de si tôt :-P
Java ne vous permet pas de faire cela. Vous aurez besoin de faire référence à l'une des classes par son nom complet et d'importer uniquement l'autre.
Aujourd'hui, j'ai déposé un projet de PEC auprès d'OpenJDK à propos de cette fonctionnalité de repliement du spectre. J'espère qu'ils vont le reconsidérer.
Si cela vous intéresse, vous pouvez trouver un brouillon JEP ici: https://Gist.github.com/cardil/b29a81efd64a09585076fe00e3d34de7