Java泛型:定义泛型类时的通配符和类型参数语法
在下面的泛型方法声明示例中,我认为这两个方法声明在和方面是相同的,因为它们接受相同类型的参数Java泛型:定义泛型类时的通配符和类型参数语法,java,generics,wildcard,type-parameter,Java,Generics,Wildcard,Type Parameter,在下面的泛型方法声明示例中,我认为这两个方法声明在和方面是相同的,因为它们接受相同类型的参数 public static <T extends List<? extends Number>> void fun(T arg){} public static void foo(List<? extends Number> arg){} 好的,那么为什么不允许使用以下语法来定义泛型类呢 public class foo<List<? extends N
public static <T extends List<? extends Number>> void fun(T arg){}
public static void foo(List<? extends Number> arg){}
好的,那么为什么不允许使用以下语法来定义泛型类呢
public class foo<List<? extends Numer>> {}
根据oracle的Java教程,是否因为我只能使用语法类名{/*…*/}来定义泛型类?Java还提供了一个额外的语法来定义泛型方法
因此,如果我想定义一个泛型类,比如公共类foo,以利用T和U,我只能通过以下方式来实现:
公务舱富?没有简洁的方法可以做到这一点
谢谢 从你的初衷。。。以下是有效的泛型类
public class MyClass<T extends List<? extends Number>> {}
它可以被用来如下
public class MyClass<T extends List<? extends Number>> {
T myList;
public T getMyList() {
return myList;
}
public void setMyList(T myList) {
this.myList = myList;
}
}
public class Tester {
public Tester() {
MyClass<ArrayList<Number>> list = new MyClass<>();
list.setMyList(new ArrayList<>());
list.getMyList().add(new Integer(2));
list.getMyList().add(new Long(3));
}
}