2010-09-16 34 views
6

Her ikisi de Query - bir JDO sınıfı, bir JPA sınıfı, aynı sınıfta farklı yöntemlerde kullanmak için adlandırılan bu iki sınıfı almak istiyorum.Farklı paketlerde aynı ada sahip iki sınıf nasıl içe aktarılır?

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

dosyanın üst kısmında aynı anda her ikisini de ithalat global olarak bir yolu var mı?

cevap

15

Korkarım ki hayır. Sonra adı çarpışmaları olmadan başka alabilirsiniz

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

gibi sadece tam adıyla sınıfların birine başvuruda: Ama bunu kullanmak sınıfını içe gerekmez.

BTW, bazen sınıfınızda bu tür çarpışmalara pek çok isim almaya başlarsanız, bu, yeniden düzenleme için ince bir ipucu olur: bir küçük sınıfa ait büyük bir sınıfa ait işlevselliği yarma.

2

import ifadesinin tek amacı, tam nitelikli bir ad için kısa bir takma ad oluşturmaktır. Her ikisini de içe aktarmaya izin verildiyse, çözülecek tür çıkarımı gerektirecek bir belirsizlik yaratacak ve kodunuzu okumak çok zor olacak.

+2

@Ment - iyi, Java dili buna izin vermiyor ve 'typedef' eşdeğerini desteklemiyor. –

+0

Elbette, bu harika olurdu, ama bu şekilde çalışmıyor (henüz). – erickson

İlgili konular