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方法(ListListList您不能将元素添加到列表是的,这是真的,现在我明白了。谢谢您不能将元素添加到列表是的,这是真的,现在我明白了。谢谢通配符我可以使用数字的子类型,这在我的泛型类型中是否相同?对不起,我不明白您的问题。@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);