我有像这样的构造函数类
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类