Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 泛型之间有什么区别_Java - Fatal编程技术网

Java 泛型之间有什么区别

Java 泛型之间有什么区别,java,Java,好的,我在这个网站上读到了这个问题,但它没有回答我的要点 假设我们有如下情况: public <T extends Number> void someMethod(List<T> list) 公共方法(列表) 及 公共方法(列表此处: 这在这里是不可能的: public void someMethod(List<? extends Number> list) 公共方法(列表此处: 这在这里是不可能的: public void someMethod(Lis

好的,我在这个网站上读到了这个问题,但它没有回答我的要点

假设我们有如下情况:

public <T extends Number> void someMethod(List<T> list)
公共方法(列表)

公共方法(列表此处:

这在这里是不可能的:

public void someMethod(List<? extends Number> list)
公共方法(列表此处:

这在这里是不可能的:

public void someMethod(List<? extends Number> list)

public方法(ListList
List
您不能将元素添加到
列表是的,这是真的,现在我明白了。谢谢您不能将元素添加到
列表是的,这是真的,现在我明白了。谢谢通配符我可以使用数字的子类型,这在我的泛型类型中是否相同?对不起,我不明白您的问题。@Ernusc,第一个声明您可以使用
 T
作为方法签名中的一种类型,而不必使用
数字
(如果您需要,您可以在将来更轻松地更改它)在通配符中,我可以使用数字的子类型,这与我的泛型类型是否相同?抱歉,我不理解您的问题。@Ernusc在第一次声明中,您可以使用
t
作为方法签名中的类型,而不必使用
number
(并且如果需要,您可以在将来更轻松地更改它)
T obj = list.get(0);
list.add(obj);
public void someMethod(List<? extends Number> list)
public class  Example<T extends Number> {

public <T extends Number> void someMethod(List<T> list) ...

public <T extends Number> void someOtherMethod(List<T> list) ...

}

public class SomeClass extends Number {
}

public class SomeClass2 extends Number {
}
Example<SomeClass> myExample =  new Example<SomeClass>();
List<SomeClass2> someClass2 =  new ArrayList<SomeClass2>();
example.someMethod(someClass2);