2016-11-09 6 views
-3

Ich möchte etwas wie das tun: int a = 4 plus 5;Können wir benutzerdefinierte Benutzer in Java manuell hinzufügen

Hier plus ist benutzerdefinierter Operator, der von mir definiert wird, kann in JVM-Ebene. Ist es möglich, so etwas zu tun?

+0

Gehen Sie lernen Scala, wenn Sie das wirklich tun möchten –

+0

Wenn Sie nicht zwischen Quellcode-Ebene und JVM-Ebene unterscheiden können, sollten Sie nicht einmal darüber nachdenken. – Holger

Antwort

1

Nein, es gibt keine Möglichkeit, Infix-Operatoren zu definieren oder vorhandene Operator-Symbole in der Java-Sprache zu überladen.

Sie können jedoch eine Sprache verwenden, die dies unterstützt, wenn sie mit der JVM (Bytecode) kompiliert wird.

Dies ist einer der Gründe, warum alternative JVM-Sprachen wie JRuby, Groovy oder Scala verwendet werden, besonders wenn Sie eine interne DSL bilden wollen. Sie alle haben in diesem Bereich (in unterschiedlichem Maße) mehr Freiheiten.

Und wenn Sie nicht nach Java kompilieren möchten, können Sie auch das integrierte Skript-Interpreter-Framework verwenden und eine flexiblere unterstützte Skriptsprache verwenden. (Zum Beispiel können Sie Jasper Reports mit Groovy erweitern).

+1

Ich denke, es ist erwähnenswert, dass Scala auch in diese Richtung geht – GhostCat

+1

Groovy tut auch. – Andreas

Verwandte Themen