ジェネリック型のリストを返すメソッド、以下に示すメソッドがあります。
protected <T extends SQLDataBean> List<T> getJavaListFromOracleArray(Array array) throws SQLException
次に、SQLDataBean を拡張する ReplacementBean というオブジェクトがあります。
別のクラス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 メソッドを呼び出す前に、一時的なローカル変数を設定する 2 行のプロセスを実行する必要がないようにする方法はありますか? それはうまくいきますが、それをする必要がないのはいいことです。
以下を呼び出します。
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>
ます。