我使用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