次のコードを使用します。
Main.java
// ...
private static <T extends Serializable> T doStuff() {
Response r = ...
// ...
return r.getDetails();//Error here
}
// ...
Response.java
interface Response {
// ...
Serializable getDetails();
// ...
}
メソッドで「型の不一致: Serializable から T に変換できません」というコンパイル エラーが発生しますdoStuff
。
返された結果をキャストすると、エラーは削除されます。
return (T)r.getDetails();
しかし今、私はこの警告を持っています: Type safety: Unchecked cast from Serializable to T
.
@SuppressWarnings("unchecked")
警告を抑制しますが、この解決策は醜いと思います。
より良いオプションはありますか?