我有一个如下代码片段。但它在list.add(mapper.mapRow())中给出错误; line说“类型List中的方法add(K)不适用于参数(Object)”。 我该如何解决?
感谢。
public List<K> fetchData(JStarRowMapper mapper) {
List<K> list = new ArrayList<K>();
list.add(mapper.mapRow());
return list;
}
public class IncomingRowMapper<K> implements JStarRowMapper {
@Override
public IncomingVO mapRow(ResultSet rs) throws SQLException {
IncomingVO vo = new IncomingVO();
vo.setId(rs.getInt("id"));
vo.setUsername(rs.getString("username"));
vo.setProcessDate(rs.getTimestamp("process_date"));
vo.setProcessCount(rs.getInt("process_count"));
return vo;
}
}
public interface JStarRowMapper<K> {
abstract public K mapRow(ResultSet rs) throws SQLException;
}
答案 0 :(得分:2)
在第一个片段中,您应该将mapper声明为
JStarRowMapper<K>
此外,mapRow不带参数调用,而需要ResultSet参数
答案 1 :(得分:0)
另一个问题是IncomingRowMapper
应声明为:
public class IncomingRowMapper implements JStarRowMapper<IncomingVO> { ...