Я знаю, это звучит запутанно, но это лучшее, что я мог объяснить. (Вы можете предложить лучшее название). У меня 3 класса: -
A
public class A <T extends Comparable<T>> {
...
}
B
public class B {
A<C> var = new A<C>();
// Bound mismatch: The type C is not a valid substitute for the bounded parameter <T extends Comparable<T>> of the type A<T>
...
}
C
public class C <T extends Comparable<T>> implements Comparable<C>{
private T t = null;
public C (T t){
this.t = t;
}
@Override
public int compareTo(C o) {
return t.compareTo((T) o.t);
}
...
}
Я получаю сообщение об ошибке при попытке создать экземпляр A
в B
Связанное несоответствие: тип C не является допустимой заменой ограниченного параметра ‹T extends Comparable‹ T>> типа A
C
- это необработанный тип вB
. А также вcompareTo
методеC
. Здесь происходит сильное смешение исходных типов и дженериков - и именно поэтому у вас есть проблемы. - person Boris the Spider   schedule 04.05.2015C<T>
сопоставим только с rawtypeC
. Как я уже сказал, вам нужно еще немного почитать. - person Boris the Spider   schedule 04.05.2015A<C<Integer>> var = new A<C<Integer>();
- person Vikrant Goel   schedule 04.05.2015