这是来自HeadFirst Java :(第575页)
这个:
public <T extends Animal> void takeThing(ArrayList<T> list)
Run Code Online (Sandbox Code Playgroud)
与此相同:
public void takeThing(ArrayList<? extends Animal> list)
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题:如果它们完全相同,我们为什么不写
public <? extends Animal> void takeThing(ArrayList<?> list)
Run Code Online (Sandbox Code Playgroud)
要么
public void takeThing(ArrayList<T extends Animal> list)
Run Code Online (Sandbox Code Playgroud)
此外,何时使用?有用?使用泛型或类声明的方法声明(如上所述)中的T而不是T?有什么好处?
下一个方法是通用的,但我只想知道 ? 的用处是什么<T>?,我的意思是<T>who 位于 static 旁边,位于 void 之前。如果我不在我的方法中编写它会发生什么?
public static <T> void nameMethod(BinaryTreeNode<T> t){
/*do something
.
.
*/
}
Run Code Online (Sandbox Code Playgroud)
谢谢。