2009-10-05 40 views
1

在Java應用程序中我使用休眠的標準查詢, 例如:如何轉換在Java中的列表類型冬眠

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

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

,我definetly知道結果列表包含類型的對象的任何但 我不不知道是否有可能獲得上面定義的類型列表?

在這種情況下,如果我想使用的foreach有必要類型的對象轉換爲類型任何

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

或者,如果我需要得到一個數組我必須做這樣的事情:

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

你有什麼想法嗎?

回答

3

Hibernate不支持泛型。所以下面的代碼是「最好的」你:

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

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

也許

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

是更好的一種警告仍然存在。該轉換不能由編譯器檢查。所以警告是好的。