用于在方法调用中显式指定泛型参数的Java语法

时间:2010-06-10 08:27:05

标签: java generics

显式提供通用Java方法的类型参数的语法是什么?

3 个答案:

答案 0 :(得分:57)

根据Java specification例如:

Collections.<String>unmodifiableSet()

(很抱歉提问和回答我自己的问题 - 我只是第三次看这个。: - )

答案 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[]{});

另请参阅java tutorial on generic type parameters

相关问题