2017-07-18 215 views
-7

編譯代碼時我得到了上述異常。該代碼是:類轉換異常:java.lang.ClassCastException:java.util.ArrayList不能轉換爲java.lang.Long

IPAMEmailManagerBean.java-

DAOFactory daoFactory = DAOFactory.getInstance(); 
PropertyDAO propertyDAO = (PropertyDAO) daoFactory.getDAO("org.hc.cbl.dao.property.PropertyDAO"); 
StringBuilder aaCategoryCode = new StringBuilder(); 
PropertyAACategoryCodesTO propertyAACategoryCodesTO = null; 
List<String> ahrCategoryCodeList = new ArrayList<String>(Arrays.asList(applicantSavedSearchTO.getAccHousingCatIdStr().split(","))); 
List<Long> list = new ArrayList<Long>(); 
for (String s : ahrCategoryCodeList) 
    list.add(Long.valueOf(s)); 
    System.out.println(list); 
    List list1 = propertyDAO.findAHRCategoryCodesByPartnerIdAndCodeList1(applicantSavedSearchTO.getPartnerId(), list); //This line showing class cast exception java.util.ArrayList cannot be cast to java.lang.Long 
    if(list1!=null){ 
    for(int i=0;i<list1.size();i++){ 
     propertyAACategoryCodesTO=(PropertyAACategoryCodesTO)list1.get(i); 
     aaCategoryCode.append(propertyAACategoryCodesTO.getAaCategoryCodeDesc()+","); 
    } 
    } 
} 

PropertyDAO.java-

public List findAHRCategoryCodesByPartnerIdAndCodeList1(Long partnerId, List strAHRCategoryCode)throws CBLException { 
    List AHRCategoryCodesList = null; 
    try { 
    log.debug("Entering PropertyAACategoryCodeDAO public List findAHRCategoryCodesByPartnerIdAndCodeList()throws CBLException"); 
    Query query = HibernateUtil.getSession().createQuery("from PropertyAACategoryCodesTO as propertyAACategoryCodesTO " 
    + "where propertyAACategoryCodesTO.partnerTO.partnerId=:partnerId and propertyAACategoryCodesTO.aaCategoryId " 
    + "in(:strPropertyTypes) order by propertyAACategoryCodesTO.aaCategoryCodeDesc asc"); 
    query.setLong("partnerId",partnerId); 
    query.setParameter("strPropertyTypes", strAHRCategoryCode); 
    query.setCacheable(true); 
    AHRCategoryCodesList=query.list(); 
    HibernateUtil.commitTransaction(); 
    HibernateUtil.closeSession(); 
    } catch (Exception ce) { 
    ce.printStackTrace(); 
    } 
    log.debug("Exit PropertyAACategoryCodeDAO public List findAHRCategoryCodesByPartnerIdAndCodeList()throws CBLException"); 
    return AHRCategoryCodesList; 
} 

我已經投,只要在列表值,因此可能是什麼原因吧。提前致謝。

+3

您是否認真對待您的縮進..我從來沒有見過這麼糟糕 – azro

+0

查看此方法的返回類型propertyDAO.findAHRCategoryCodesByPartnerIdAndCodeList1(applicantSavedSearchTO.getPartnerId(),list); –

+0

*我已經將列表值轉換爲長時間,所以可能是什麼原因*錯誤消息非常明確'java.util.ArrayList不能轉換爲java.lang.Long'。你不能做這個演員。 – Guy

回答

0

它顯示異常的原因是PropertyDAO.findAHRCategoryCodesByPartnerIdAndCodeList1()或它正在調用的某個方法試圖將List轉換爲Long。

+0

感謝您的解釋。 – ankur777

+0

如果這確實是幫助您的答案,您能否將其標記爲已接受?它會幫助我幫助別人。謝謝! – Diederick

相關問題