2011-04-04 74 views
0

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

谢谢。

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; 

}

回答

2

在应声明映射为

JStarRowMapper<K> 

也mapRow被称为不带参数的第一个片段,而它需要的ResultSet参数

0

另一个问题是IncomingRowMapper应宣布为:

public class IncomingRowMapper implements JStarRowMapper<IncomingVO> { ...