Naviguer dans les bibliothèques Guava j'ai vu cette signature bizarre sur une méthode readlines de la classe Fichiers:type Java bizarre de retour générique
public static <T> T readLines(File file,
Charset charset,
LineProcessor<T> callback)
Je sais un peu de médicaments génériques en Java, mais cela me déconcerté.
Que signifie le double T ici? Et pourquoi est le premier dans les parenthèses inclinées?
MISE À JOUR: Merci pour les réponses. Je ne comprends toujours pas pourquoi je devrais utiliser un T à l'intérieur des supports. Pourquoi, par exemple ne peut-il être juste:
public static <> T readLines()
ou
pulibc static <K> T readLines()
Ou la syntaxe java Dictate que la même lettre doit être utilisé?
maintenant this est encore wierder:
static <T> void fromArrayToCollection(T[] a, Collection<T> c) {
comment une méthode ont un type générique-retour et être vide?
Le T entre chevrons n'est PAS le type de retour; c'est le paramètre de type pour la méthode. –
Notez que s'il n'y avait pas dans les signatures ci-dessus, le compilateur s'attendrait naturellement à trouver "class T {...}" défini quelque part. Quelque chose doit informer le compilateur que vous aimeriez qu'il y ait un paramètre de type * appelé T. Et c'est ainsi. –