我想做这样的事情: int a = 4加5;
这里plus
是我定义的用户定义运算符,可能是jvm级别。有可能做那样的事吗
答案 0 :(得分:1)
不,没有办法在Java语言中定义中缀运算符或重载现有的运算符符号。
但是,如果它编译为JVM(字节码),则可以使用支持此语言的语言。
这是使用JRuby,Groovy或Scala等替代JVM语言的原因之一,特别是如果您想构建内部DSL。他们在这个领域都有更多的自由(不同程度)。
如果您不想编译为Java,您还可以使用内置脚本解释器框架并使用支持的更灵活的脚本语言。 (例如,您可以使用Groovy扩展Jasper Reports。)