Je veux importer ces deux classes, tous les deux nommés Query Code> - une classe A
import javax.jdo.Query;
import javax.persistence.Query;
3 Réponses :
J'ai peur, non. Mais vous n'avez pas à importer de la classe pour l'utiliser: il suffit de faire référence à l'une des classes par son nom complet, comme alors vous pouvez importer une autre sans collision nominale. P> < P> BTW, parfois si vous commencez à obtenir beaucoup de ce nom de ce type de telles collisions dans votre classe, c'est un indice subtil de refactoring: division de la fonctionnalité d'une grande classe entre plusieurs petites. P> P>
Le seul but d'une instruction code> Import Importation est d'établir un alias sténographique pour un nom pleinement qualifié. Si vous avez été autorisé à importé les deux, vous créeriez une ambiguïté qui nécessiterait une inférence de type pour résoudre et rendre votre code extrêmement difficile à lire. p>
@Ment - Eh bien, la langue Java n'autorise pas cela, et cela ne prend pas en charge l'équivalent du Typedef code> non plus.
Bien sûr, ce serait cool, mais cela ne fonctionne pas de cette façon (encore).
Les réponses existantes sont correctes. J'aimerais vous montrer comment les conflits de noms de classe peuvent être manipulés à Kotlin ( Docs A>). S'il y a un nom de nom, nous pouvons désambiguez en utilisant le mot-clé comme code> pour renommer localement l'entité d'affichage: p>
import javax.jdo.Query // Query is accessible
import javax.persistence.Query as jpaQuery // jpaQuery stands for 'javax.persistence.Query'