我不明白为什么以下代码会生成警告。
interface Generic<T> {
}
interface A {
}
class B {
Generic<A> c;
<T extends A> B(Generic<T> a) {
c = (Generic<A>) a; //warning here
}
}
//Unchecked cast from Generic<T> to Generic<A>
在 B 类中,我只对使用 A 类型的 Generic 实例感兴趣。此警告表明我需要将 Generic 参数存储为 T 而不是 A。
但这意味着我也必须声明 B 泛型,这似乎使事情变得比需要的更复杂。