我使用Eclipse IDe和Apache Commons DBUtils库,并且我有一些从BasicRowProcessor class扩展的自己的行处理器类。在这个班,我重写这两个DButils'方法:参数化Java中的原始类型
public <T> T toBean(ResultSet rs, Class<T> type) throws SQLException
和
public <T> List<T> toBeanList(ResultSet rs, Class<T> type) throws SQLException
我toBeanList
方法的实现如下:通过ResultSet
和呼叫
@Override
public LinkedList<Object> toBeanList(ResultSet rs, Class clazz) {
try {
LinkedList<Object> newlist = new LinkedList<Object>();
while (rs.next()) {
newlist.add(toBean(rs, clazz));
}
return newlist;
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
}
我环路其所有记录均采用toBean
方法。它的工作原理,但是Eclipse报告了一些问题(可能与Java的泛型),请看到这个截图:
当我设置参数化clazz
参数作为Class<TaskItem> clazz
Eclipse的报告中其他的问题,而不会覆盖方法上层阶级BasicRowProcessor
。
我怎样才能解决这个问题呢?我究竟做错了什么?或者是否可以忽略此警告?可能解决这个问题很容易,但我还没有找到解决方案。
编辑:
我试图参数化我的两个方法,但Eclipse的报告,我需要重写超类型。
toBeanList
方法:
@Override
public LinkedList<TaskItem> toBeanList(ResultSet rs, Class<TaskItem> clazz) {
try {
LinkedList<TaskItem> newlist = new LinkedList<TaskItem>();
while (rs.next()) {
newlist.add(toBean(rs, clazz));
}
return newlist;
} catch (SQLException ex) {
throw new RuntimeException(ex);
}
}
而且toBean
方法:
@Override
public TaskItem toBean(ResultSet rs, Class<TaskItem> clazz) throws SQLException {
TaskItem item = new TaskItem();
// some stuff....
return item;
}
这Eclipse的报告:
是的,我试了一下,但是当我宣布返回类型列出和类Eclipse的报告,我需要重写一个超类型方法。这是我想要解决的问题。谢谢! –
user2148736
您可以发布您在参数化方法调用时使用的代码吗?即来自上方的图像没有警告。 – mvieghofer
谢谢,我在我的原始问题中添加了一个我的方法示例。 – user2148736