我的任务是在我们的代码库中删除尽可能多的 @SupressWarning
,但我不确定如何解决这个特定问题。
我有一个返回 Serializable
对象的外部方法,以及一个我想将该对象转换为的通用类型 T extends Serializable
。
这是代码的简化版本:
class A <T extends Serializable> {
public T someMethod() {
Serializable result = someExternalMethod(...);
T convertedObject = (T) result; // produces unchecked cast warning
return convertedObject;
}
}
是否可以在不产生未检查的转换警告的情况下执行此转换(假设无法更改外部方法)?
这是Java 8。
最佳答案
扩展ferpel的答案您可以将类型作为参数传递
class A <T extends Serializable> {
public T someMethod(Class<T> type) {
Serializable result = someExternalMethod(...);
return type.cast(result);
}
}
关于java - 未经检查从 X 转换为扩展 X 的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635146/