簡體   English   中英

演員表 <Object> 到ArrayList

[英]Cast list<Object> to an ArrayList

我有一個錯誤的演員表。

我的控制台的錯誤是:

java.lang.ClassCastException:[Ljava.lang.Object; 無法轉換為modelAjax.ModeloAjax

我的代碼是:

DAO

public List<ModeloAjax> findByMarca(Long marca) {

    Session s = sf.getCurrentSession();

    Query q = s.createQuery("select id, nombre from "+getEntityName()+" where marca_id="+marca);

    List<?>modelos = q.list();

    List<ModeloAjax> result = new ArrayList<ModeloAjax>(modelos.size());

    for(Object o : modelos){
        result.add((ModeloAjax) o);
    }




    return result;
}

我該如何解決該錯誤?

您正在將Object []轉換為ModeloAjax。 此數組包含id和nombre的2個項目。

您需要這樣的代碼:

Query q = s.createQuery("select e from " + getEntityName() + " e where e.marca_id = " + marca);

注意:您要保留您的查詢。 您必須這樣做:

for(Object o : modelos ) {
    Object[] record = (Object[])o;
    // record[0] = id
    // record[1] = nombre

    // Convert record to ModeloAjax
}
Query q = s.createQuery("select id, nombre from "+getEntityName()+" where marca_id="+marca).addEntity(ModeloAjax.class);

將返回ModeloAjax對象列表中的db值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM