Sie haben den Rückgabetyp ausgelassen, aber abgesehen davon ist es eine generische Methode. Wie bei generischen Typen, T
steht für einen beliebigen Referenztyp (innerhalb der Grenzen, falls gegeben).
Bei Methoden werden generische Parameter normalerweise vom Compiler abgeleitet. In bestimmten Situationen kann es sinnvoll sein, die generischen Argumente selbst anzugeben, wobei eine etwas eigenartige Syntax verwendet wird:
List<String> strings = Collections.<String>emptyList();
In diesem Fall hätte der Compiler den Typ ableiten können, aber es ist nicht immer offensichtlich, ob der Compiler das kann oder nicht. Beachten Sie, dass der <>
steht nach dem Punkt. Aus syntaktischen Gründen muss immer der Typname oder das Zielobjekt angegeben werden.
Es ist möglich, generische Konstruktoren zu haben, aber ich habe noch nie einen in freier Wildbahn gesehen und die Syntax wird immer schlechter.
Ich glaube, dass die Syntax von C++ und C# die generischen Typen nach dem Namen der Methode/Funktion platziert.