Wie lautet die Syntax für die explizite Angabe der Typparameter für eine generische Java-Methode?Java-Syntax zum expliziten Angeben generischer Argumente in Methodenaufrufen
Antwort
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()
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 :-)
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.
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. :-) –
- 1. Zu viele Argumente in Methodenaufrufen
- 2. Kann ich meinen expliziten Typvergleicher inline angeben?
- 3. Wie Argumente für Ersatz in Mapcar angeben?
- 4. Kann ich in Java eine beliebige Anzahl generischer Typparameter angeben?
- 5. Generischer Helfer zum Schließen von JDBC-Objekten
- 6. Benachrichtigen von Methodenaufrufen in .NET
- 7. Tool zum Refactoring von C# var zum expliziten Typ
- 8. Automatisches Refactoring zum Hinzufügen von Parameternamen zu Methodenaufrufen
- 9. C++ Weiterleiten von Methodenaufrufen zum Einbetten von Objekten ohne Vererbung
- 10. Argumente zum Kernel
- 11. Standard generischer Parameter
- 12. Was ist der Zweck von Rubys Double-Splat (`**`) in Methodenaufrufen?
- 13. RSpec mit FactoryGirl expliziten Betreff
- 14. PowerShell: Leistung von .NET-Methodenaufrufen
- 15. Gibt es einen Leistungsvorteil beim expliziten Angeben der OneWay-Bindung beim Einrichten von Bindungen in WPF?
- 16. Kann nicht Typen in generischer Methode zum NULLABLE ändern
- 17. Typoskript optional generischer Typ
- 18. Expliziter Konvertierungsoperatorfehler beim Konvertieren generischer Listen
- 19. Generischer Container in C++
- 20. Generischer Parameterprüfer in C++
- 21. Generische Schnittstellenimplementierung: Generischer Rückgabetyp und generischer Eingabetyp
- 22. Zweck der expliziten Standardkonstruktoren
- 23. BeginInvoke auf expliziten Schnittstellenmember
- 24. Globale Variablen zum Angeben einer Startaktivität
- 25. Notwendigkeit von expliziten cursor.close()
- 26. asp.net mvc generischer Controller
- 27. Monitor.TryEnter mit generischer Klasse
- 28. Generischer Daten-Fetcher
- 29. Sortierung generischer Satz in Swift
- 30. Wie wird ein generischer Auslöser zum Festlegen der Prüffelder festgelegt?
Wie ich es verstehe Ihre eigene Frage zu beantworten ist durchaus akzeptabel , solange es kein Duplikat ist (dh nicht auf diese Weise rep-jagen). –
Wenn es für die Nachwelt ist, könnte auch der Tippfehler im Beispiel korrigieren ;-). –
Sie sollten wahrscheinlich Ihre eigene Antwort akzeptieren :) – bacar