2009-10-05 9 views
1

En application java j'utiliser des requêtes critères mise en veille prolongée, par exemple:Comment convertir le type de liste en Java mise en veille prolongée

Criteria criteria = session.createCriteria(Any.class); 
... 

List<?> list = criteria.list(); 

et je sais definetly que la liste des résultats contient uniquement des objets de type Tout mais je don Ne sais pas s'il est possible d'obtenir la liste des types définis ci-dessus?

Dans ce cas, si je veux utiliser foreach il est nécessaire de convertir le type d'objet à saisir Tout

for(Object object : list) { 
    ... 
    ((Any)object). 
    ... 
} 

Ou si je dois obtenir un tableau que je dois faire quelque chose comme ceci:

list.toArray(new Any[]{}); 

Avez-vous des idées?

Répondre

3

Hibernate ne supporte pas les génériques. Ainsi, le code suivant est le "meilleur" vous obtenez:

@SuppressWarnings("unchecked") 
List<Any> resultList = criteria.list(); 

for(Any any : resultList){ ... } 

Peut-être

List<Any> resultList = criteria.list(); 
for(Any any : resultList){ ... } 

est mieux que l'avertissement de type est toujours là. Cette conversion ne peut pas être vérifiée par le compilateur. Donc l'avertissement est ok.

Questions connexes