10
votes

Est-il possible d'avoir une quantité variable de types d'éléments dans une classe générique Java

Je me demandais s'il est possible d'avoir quelque chose comme ceci: xxx

afin que vous puissiez appeler la classe comme xxx

avec Objet 0, 1 et 2 types différents, comme entier, flotteur, chaîne et ainsi de suite. Est-ce possible ou devrais-je écrire une classe pour chaque longueur de types génériques? Si cela serait possible, comment alliez-vous gérer les différents types?


4 commentaires

Pourquoi auriez-vous besoin de cela? Ou c'est juste la curiosité?


@pivovarit pour un TUPLE Tapez par exemple, ou pour un type appelable avec signature réglable.


@pivovarit L'exemple évident que je peux penser serait des classes de type générique. Cela dit non pas possible, Scala, par exemple, a des versions d'une telle classe pour un maximum de 15 arguments. Pitié oui


Pour résoudre des problèmes nécessitant une telle conception de type, dans Java, vous devez vous détourer à travers l'API de réflexion (passer des objets autour).


3 Réponses :


3
votes

Une classe générique est définie avec le format suivant:

class name<T1, T2, ..., Tn> { /* ... */ }


0 commentaires


5
votes

Non, vous ne pouvez pas avoir ça. Le meilleur que vous puissiez faire est La classe publique FOO . Donc, dans votre exemple avec integer et float Vous pouvez définir class public FOO . .

Vous pouvez également spécifier que t doit mettre en œuvre plusieurs interfaces.

La syntaxe Classe publique FOO est valide, avec & Signification et .

Malheureusement, la syntaxe Classe publique FOO avec | signifie ou n'est pas possible.


0 commentaires