Я не понимаю, почему следующий код генерирует предупреждение.Java: Generic casting down генерирует предупреждение, почему?
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 я заинтересован только в использовании экземпляров Generic, которые типа А. Это предупреждение свидетельствует о том, что мне нужно хранить Generic аргумент как Т вместо А.
Но это означает, что мне также придется объявить B generic, что, похоже, усложняет ситуацию, чем нужно.
Что происходит, когда вы не бросаете? – aperkins
ошибка несоответствия типа – Mike