2010-09-16 17 views
6

Desidero importare queste due classi, entrambe denominate Query - una classe JDO, l'altra una classe JPA, da utilizzare in diversi metodi nella stessa classe.Come importare due classi con lo stesso nome in pacchetti diversi?

import javax.jdo.Query; 
import javax.persistence.Query; 

Esiste un modo globalmente importazione entrambi allo stesso tempo nella parte superiore del file?

risposta

15

Ho paura, no. Ma non c'è bisogno di importare classe da utilizzare: basta fare riferimento una delle classi con il suo nome completo, come

javax.jdo.Query query = getJDOQuery(); 
query.doSomething(); 

Quindi è possibile importare un altro senza conflitti di nomi.

BTW, a volte se si inizia a ottenere un tale nome di tali collisioni nella propria classe, si tratta di un sottile suggerimento per il refactoring: funzionalità di suddivisione di una grande classe tra diverse piccole.

2

L'unico scopo di un'istruzione import è di stabilire un alias di stenografia per un nome completo. Se fosse consentito importarli entrambi, creeresti un'ambiguità che richiederebbe l'inferenza di tipo da risolvere e renderebbe estremamente difficile la lettura del codice.

+2

@Ment - beh, il linguaggio Java non lo consente e non supporta l'equivalente di 'typedef'. –

+0

Certo, sarebbe bello, ma non funziona in questo modo (ancora). – erickson

Problemi correlati