2010-06-10 8 views

Antwort

6

Hier finden Sie nicht die Syntax

<ArgType>genericMethod() 

es die Art Argumente scheint muss kommen nach einem Punkt wie in

SomeClass.<ArgType>genericMethod() 
this.<ArgType>genericMethod() 
p.<ArgType>genericMethod() 
super.<ArgType>genericMethod() 
SomeClass.super.<ArgType>genericMethod() 
SomeClass.this.<ArgType>genericMethod() 
48

Nach dem Java specification, die zum Beispiel wäre:

Collections.<String>unmodifiableSet() 

(Sorry für das Stellen und Beantworten meiner Frage - ich habe nur diese zum dritten Mal nach oben :-)

+3

Wie ich es verstehe Ihre eigene Frage zu beantworten ist durchaus akzeptabel , solange es kein Duplikat ist (dh nicht auf diese Weise rep-jagen). –

+0

Wenn es für die Nachwelt ist, könnte auch der Tippfehler im Beispiel korrigieren ;-). –

+0

Sie sollten wahrscheinlich Ihre eigene Antwort akzeptieren :) – bacar

4

A. gutes Beispiel aus java.util.Collection ein generischen Verfahren anzugeben, das einen eigenen generischen Typ definiert ist Collection.toArray, wo die Signatur der Methode wie folgt aussieht:

<T> T[] toArray(T[] a); 

Dies deklariert einen generischen Typ T, der beim Methodenaufruf durch den Parameter T[] a definiert wird und ein Array von Ts zurückgibt. So ist die gleiche Instanz könnte die toArray Methode in einer generischen Art und Weise nennen:

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

Auch finden Sie in die java tutorial on generic type parameters.

+3

Vielleicht könnten Sie dies mit dem Teil über das explizite Geben eines Typparameters zu einem Anruf erweitern (vergleiche meine Antwort). Dann wäre es eine gute kanonische Antwort; so beantwortet es die Frage nicht einmal, da der Parameter implizit vom Compiler im Aufruf abgeleitet wird. :-) –

Verwandte Themen