Skip to content

Est-il possible de créer un opérateur personnalisé en Java ?

Solution:

Non, Java n’est pas extensible de cette manière. Vous ne pouvez pas ajouter d’opérateurs, et vous ne pouvez même pas surcharger davantage les opérateurs intégrés comme + – même les classes de bibliothèque standard comme BigInteger doivent utiliser des méthodes telles que add() plutôt que des opérateurs tels que +.

Scala (un autre langage JVM statique) contourne ce problème en utilisant des appels de méthode plutôt que des opérateurs intégrés, et en autorisant tous les caractères dans les noms de méthode, afin que vous puissiez définir de nouvelles méthodes qui semblent être des opérateurs, c’est-à-dire

a + 1

est le sucre syntaxique pour :

a.+(1)

Java ne permet pas cela.

Cependant, si vous souhaitez obtenir ce genre de syntaxe tout en étant capable d’exécuter votre code sur une JVM (et avec d’autres codes Java), vous pouvez regarder Groovy, qui a une surcharge d’opérateur (et avec lequel vous pouvez également utiliser des DSL pour faire court syntaxe qui aurait des effets similaires à l’utilisation d’opérateurs personnalisés).

Notez que la définition d’opérateurs personnalisés (pas seulement la surcharge) est un gros problème dans n’importe quel langage, car vous devriez être capable de modifier le lexer et la grammaire d’une manière ou d’une autre.



Articles Similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.