So, let's say we have these two classes.
public class Main<T extends Comparable<T>> {
public List<T> toList(T t){
Node n = new Node();
n.value = t; //This assignment1 gives no issues.
List<T> list = new List<T>();
list.add(n.value); //This assignment2 gives a type error.
return list;
}
}
class Node <T extends Comparable<T>> {
T value = null;
}
list.add((T)n.value);
Node n = new Node();
should be
Node<T> n = new Node<T>();
If you ever refer to Node
without <something>
after it, you are telling the compiler to ignore all type checking on Node
. This will give you warnings, as it should.