Java Generics - 方法签名的上限

joe*_*ugh 7 java generics

我有一个方法,我想接受必须扩展抽象类的类类型.有什么区别

<T extends AbstractClass> void myMethod(Class<T> clazz);

void myMethod(Class<? extends AbstractClass> clazz);

在第二种情况下,我无法直接引用方法内部的类型.可以将哪些类类型传递给这两种方法有什么区别吗?

Joh*_*ger 5

不,与您提供的两个方法签名兼容的参数类型之间没有区别.就个人而言,如果我需要引用参数表示的确切类型,我会使用参数化版本,否则我会使用通配符版本.