201 votes

Java équivalente à des méthodes d’extension c#

Je suis à la recherche pour implémenter une fonctionnalité dans une liste d’objet comme je le ferais en c# à l’aide d’une méthode d’extension.

Quelque chose comme ceci :

Comment faire que faire en Java ?

232voto

SLaks Points 391154

Java ne supporte pas les méthodes d’extension.

Au lieu de cela, vous pouvez faire une méthode statique normale, ou écrire votre propre classe.

8voto

Sam Keays Points 40

La langue XTend, qui compile à Java, prend en charge cela.

7voto

Pangea Points 36713

Une autre option consiste à utiliser des classes de ForwardingXXX de la bibliothèque de google-goyave.

6voto

AlexR Points 60796

Java n’a pas cette fonctionnalité. Au lieu de cela vous pouvez créer une sous-classe régulière de votre implémentation de la liste ou créer une classe interne anonyme :

Le problème consiste à appeler cette méthode. Vous pouvez le faire « en place » :

4voto

Jörg W Mittag Points 153275

Il semble qu’il y a quelque petite chance que défenseur méthodes pourrait le rendre dans Java 8. Toutefois, pour autant que je comprends leur, ils n’autorisent que l' auteur d’un `` de l’étendre rétroactivement, utilisateurs non arbitraires.

Méthodes défenseur + Interface Injection serait alors en mesure de mettre pleinement en œuvre c#-méthodes d’extension de style, mais AFAICS, Injection d’Interface n’est pas encore sur la feuille de route de Java 8 encore.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X