What is the syntax for explicitly giving the type parameters for a generic Java method?
+6
A:
According to the Java specification that would be for example:
Collections.<String>unmodifiableSet()
(Sorry for asking and answering my own question - I was just looking this up for the third time. :-)
hstoerr
2010-06-10 08:28:48
As I understand it answering your own question is perfectly acceptable, as long as it's not a duplicate (i.e. don't go rep-hunting this way).
Joachim Sauer
2010-06-10 08:46:55
If it's for posterity, might as well correct the typo in the example ;-).
Mark Peters
2010-06-10 15:00:39
+1
A:
A good example from java.util.Collection
of specifying a generic method which defines its own generic type is Collection.toArray
where the method signature looks like:
<T> T[] toArray(T[] a);
This declares a generic type T, which is defined on method call by the parameter T[] a
and returns an array of T's. So the same instance could call the toArray method in a generic fashion:
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[]{});
Also, see the java tutorial on generic type parameters.
krock
2010-06-10 08:46:20