/* An example of the failings of >: -A is comparable to A, and B extends A (so B is comparable to A as well). So far so good. -we have 'someMethod()' that takes some generic type E where > -we call someMethod() and pass in 'new A()'; A implements Comparable, so it works -we call someMethod() and pass in 'new B()', which does NOT work: B implements Comparable, which is no good */ public class A implements Comparable { public class B extends A{} //our inner class that extends A static public > void someMethod(E e){} public int compareTo(A a) {return 0;} public static void main(String [] args) { someMethod(new A()); someMethod(new B()); //error } }