我有一个如下的代码段。但它在list.add(mapper.mapRow())处给出错误;行说:“类型List中的方法add(K)不适用于参数(对象)”。
我该如何解决?

谢谢。

    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;


}

最佳答案

在第一个代码段中,您应该将mapper声明为

JStarRowMapper<K>


同样调用mapRow时不带参数,而它需要一个ResultSet参数

关于java - 通过java中的泛型类型生成对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5537931/

10-10 19:49