Raw types inside of generic definition
问题 I wonder why the following generic definition does not produce a compiler warning: class MyClass<T extends List> { } and how the above definition is different to class MyClass<T extends List<?>> { } Whenever you read about generics, you read about how raw types should be avoided and consequently, whenever you handle generic types, you get a compiler warning. The raw type inside of the first definition does however not create such a warning. Secondly, I wonder how the exact subtyping