T扩展SomeClass有什么意义?

与这样的方法声明有什么区别:

public  void doSomething(T obj) { // Do something. } 

和这个:

 public void doSomething(SomeClass obj) { // Do Something. } 

我看到它的方式,它们都指定传入的对象必须SomeClass类型的子类,那么为什么在这个实例中根本没有使用generics呢?

在你的情况下,它没有太大的区别。

但请考虑以下事项:

 public  void doSomething(List obj) 

在这种情况下,您可以通过以下方式调用该方法:

 obj.doSomething(new ArrayList()); obj.doSomething(new ArrayList()); 

如果你愿意的话

 public void doSomething(List obj) 

你只能这样做:

 obj.doSomething(new ArrayList());