Java Generics - 这两个方法声明是等价的吗?

Udo*_*Udo 13 java generics

给定一些类SomeBaseClass,这两个方法声明是否等效?

public <T extends SomeBaseClass> void myMethod(Class<T> clz)
Run Code Online (Sandbox Code Playgroud)

和

public void myMethod(Class<? extends SomeBaseClass> clz)
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 12

对于呼叫者:是的,它们是等效的.

对于方法内部的代码:没有.

区别在于,在第一个示例的代码中,您可以使用类型T(例如,用于保存由其创建的对象clz.newInstance()),而在第二个示例中则不能.