我有一個方法,返回一個泛型類型的列表,方法如下所示。Java通用擴展返回的方法鑄造錯誤
protected <T extends SQLDataBean> List<T> getJavaListFromOracleArray(Array array) throws SQLException
然後我有一個名爲ReplacementBean的對象,它擴展了SQLDataBean。
在另一類我有一個List<ReplacementBean>
了一套方法以在List<ReplacementBean>
我發現,我不知道爲什麼我不能把裏面的設置上面列出的方法。這意味着編譯時錯誤:
setReplacements(this.getJavaListFromOracleArray(in.readArray()));
但是,以下編譯和工作正常。
List<ReplacementsBean> temp = this.getJavaListFromOracleArray(in.readArray());
setReplacements(temp);
我也嘗試在set方法內部施放如下內容,但它也有編譯時錯誤。
setReplacements((List<ReplacementsBean>)this.getJavaListFromOracleArray(in.readArray()));
有什麼辦法可以在調用我的set方法之前不必做兩行設置臨時局部變量的過程?雖然它確實有效,但不必這樣做也不錯。
致電以下:
setReplacements(this.getJavaListFromOracleArray(in.readArray()));
導致的setReplacements(List<ReplacementsBean>) is not applicable for the arguments List<SQLDataBean>
的setReplacements代碼錯誤如下:
public void setReplacements(List<ReplacementsBean> replacements)
{
this.replacements = replacements;
}
另外,如果我試試這個:
setReplacements((List<ReplacementsBean>)this.getJavaListFromOracleArray(in.readArray()));
我收到錯誤無法投射從List<SQLDataBean>
到List<ReplacementsBean>
。
請發佈錯誤 –
同時顯示setReplacements的代碼。編輯爲 –
以包含錯誤和setReplacements代碼。 – user1735869