我有一个班级
public class WFWSimpleDAOImpl<ObjectClass> implements WFWSimpleDAO<ObjectClass> {
包含方法
public List<ObjectClass> retrieve(Object[] params) throws Exception {
返回对象的类型列表
return (List<ObjectClass>) getJdbcTemplate().query(sqlToExec, params, new BeanPropertyRowMapper<ObjectClass>())
BeanPropertyRowMapper构造函数需要参数来定义映射类
BeanPropertyRowMapper(Class mappedClass)
我接下来需要:
BeanPropertyRowMapper(ObjectClass)
但是我收到编译器错误消息
ObjectClass can not be resolved to a variable
我应该如何在这种情况下进行课堂演出?
答案 0 :(得分:2)
使用TypeTools替代方案:
Class<?> objClass = TypeResolver.resolveRawArgument(WFWSimpleDAO.class, dao.getClass());
答案 1 :(得分:1)
解决方案并非像我想象的那么简单。最后我使用了反射,并且这样做了:
Class<ObjectClass> classOfObjectClass = (Class<ObjectClass>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
return (List<ObjectClass>) getJdbcTemplate().query(sqlToExec, params, new BeanPropertyRowMapper(classOfObjectClass));