我想创建一个通用方法,如下所示:
public<T,S,R> getCell(S column,R arg){
return jdbcTemplate.queryForObject("select ? from PASS_IND_SP_LINK where PASS_IND_LINK_ID=?", new Object[]{column,arg}, T.class);
}
但是T.class
无法编译。我该怎么做才能使此方法返回T
类型?
答案 0 :(得分:2)
首先,您需要方法的返回类型。但是,如果您想返回T,可以这样:
public<T,S,R> T getCell(S val1, R val2, Class<T> theClass){
return jdbcTemplate.queryForObject("select ? from PASS_IND_SP_LINK where PASS_IND_LINK_ID=?", new Object[]{column,arg}, theClass);
}
您也必须通过课程。泛型中的T只是类型的元数据。调用它的方法并获取它的类不是实例。您需要在参数中传递它。像这样:
myObject.getCell("val1" , "val2", String.class);