一尘不染

Java泛型-这两个方法声明是否等效?

java

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

public <T extends SomeBaseClass> void myMethod(Class<T> clz)

public void myMethod(Class<? extends SomeBaseClass> clz)

阅读 200

收藏
2020-12-03

共1个答案

一尘不染

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

对于方法中的代码:否。

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

2020-12-03