对于泛型类型错误 - 类不兼容

时间:2017-04-17 14:49:20

标签: java

我有像这样的构造函数类

public SelectOption(SysMyAbDao dao,Class<E> entity,String idName, String labelName ){

    this.dao = dao;
    this.entity = entity;
    entityAll = dao.findAll();
    try{
        Method idMethod = this.entity.getMethod(idName);
        Method labelMethod = this.entity.getMethod(labelName);
        for ( E single : entityAll) {
            optionList.put((String)idMethod.invoke(single),(String)labelMethod.invoke(single));
        }
    }catch (NoSuchMethodException ex){
        ex.printStackTrace();
        logger.error(ex.getMessage());
    } catch (InvocationTargetException e) {
        logger.error(e.getMessage());
    } catch (IllegalAccessException e) {
        logger.error(e.getMessage());
    }
}

但是在这一行

    E single : entityAll

我有错误:

不兼容的类型。 必需:java.lang.Class 发现:E

但如果我使用

    Class<E> single : entityAll

我得到了

java.lang.ClassCastException:it.survey.model.AppQuestion无法强制转换为java.lang.Class

其中it.survey.model.AppQuestion是我传递给构造函数的E类

0 个答案:

没有答案