给定一些类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()),而在第二个示例中则不能.