使用以下代码:
主.java
// ...
private static <T extends Serializable> T doStuff() {
Response r = ...
// ...
return r.getDetails();//Error here
}
// ...
响应.java
interface Response {
// ...
Serializable getDetails();
// ...
}
我收到此编译错误:方法中的“类型不匹配:无法从 Serializable 转换为 T” doStuff
。
如果我转换返回的结果,则错误被删除。
return (T)r.getDetails();
但现在我有这个警告:Type safety: Unchecked cast from Serializable to T
。
@SuppressWarnings("unchecked")
会抑制警告,但我觉得这个解决方案很难看。
有没有更好的选择?