将list <object> get(0)转换为class

时间:2015-11-30 08:53:45

标签: java

我有一个泛型类型的DBHandler。我面临的问题是我无法将对象强制转换为类。令我困惑的是为什么我不能从get(0)中投出单个InstrumentOLS?

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.sg.info.InstrumentOLS

InstrumentOLS ols = (InstrumentOLS)listOLSvalues.get(0);

查询将返回正常但它包含一个Object列表。

List<InstrumentOLS> listOLSvalues = dbHandler.selectNativeListQuery("SELECT * FROM INSTRUMENTOLS");

public List<T> selectNativeListQuery(String sql) {
    validateEntityManager();

    Query query = em.createNativeQuery(sql);
    List<T> listObj = query.getResultList();
    return listObj;
}

1 个答案:

答案 0 :(得分:1)

如Jon所述,我需要更新以发送InstrumentOLS课程。这使得返回类型变为InstrumentOLS而不是Object。

List<InstrumentOLS> listOLSvalues = dbHandler.selectNativeListQuery("SELECT * FROM SGWebNN.INSTRUMENTOLS", InstrumentOLS.class);

然后在通用DBHandler

public List<T> selectNativeListQuery(String sql, Class aClass) {
        validateEntityManager();

        Query query = em.createNativeQuery(sql, aClass);
        List<T> listObj = query.getResultList();
        return listObj;
    }