"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je combiner les contraintes de classe et d'interface à l'aide de génériques Java ?

Comment puis-je combiner les contraintes de classe et d'interface à l'aide de génériques Java ?

Publié le 2024-12-22
Parcourir:942

How Can I Combine Class and Interface Constraints Using Java Generics?

Génériques Java avec compatibilité de classe et d'interface

En Java, créer un objet de classe avec des contraintes spécifiques peut être difficile. Un scénario courant consiste à définir un objet de classe qui étend une classe particulière tout en implémentant simultanément une interface spécifique. Cependant, la réalisation simultanée des deux contraintes à l'aide de génériques a été un point de discorde courant. extends ClassA>

ou

Class extends ClassA>

ne satisfera qu'à une seule exigence et ne parviendra pas à combiner les deux.

Class extends InterfaceB>
Solution

Heureusement, les génériques Java permettent plusieurs interfaces ou classes plus interfaces. Pour y parvenir, modifiez la déclaration générique comme suit :

Comme illustré dans le tutoriel Generics de Sun, en ajoutant & InterfaceName pour chaque interface supplémentaire requise, un une combinaison arbitrairement complexe peut être réalisée. Par exemple, la déclaration JavaDoc de Collections#max démontre cette complexité :

La préservation de la compatibilité binaire nécessite ces déclarations complexes.

Class extends InterfaceB>
Implémentation avec contraintes de classe et d'interface

Pour implémenter la restriction souhaitée dans une déclaration de variable, placez une limite générique sur une classe :class classB { } interface interfaceC { } classe publique MyClass { Variable de classe ; }

Conclusion
Class extends InterfaceB>

Les génériques Java offrent des moyens flexibles de créer des combinaisons contraintes de classes et d'interfaces. En comprenant la syntaxe et les limites, les développeurs peuvent exploiter ce pouvoir pour appliquer des exigences spécifiques dans leur code.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3