显式提供通用Java方法的类型参数的语法是什么?
答案 0 :(得分:57)
答案 1 :(得分:24)
以下是不语法
<ArgType>genericMethod()
类似的参数必须来自
之后的点SomeClass.<ArgType>genericMethod()
this.<ArgType>genericMethod()
p.<ArgType>genericMethod()
super.<ArgType>genericMethod()
SomeClass.super.<ArgType>genericMethod()
SomeClass.this.<ArgType>genericMethod()
答案 2 :(得分:4)
java.util.Collection
指定定义其自己的泛型类型的泛型方法的一个好例子是Collection.toArray
,其中方法签名如下:
<T> T[] toArray(T[] a);
这声明了一个泛型类型T,它是在参数T[] a
的方法调用中定义的,并返回一个T的数组。因此,同一个实例可以以通用方式调用toArray方法:
Collection<Integer> collection = new ArrayList<Integer>();
collection.add(1);
collection.add(2);
// Call generic method returning Integer[]
Integer[] ints = collection.toArray(new Integer[]{});
// Call generic method again, this time returning an Number[] (Integer extends Number)
Number[] nums = collection.toArray(new Number[]{});