我正在尝试向Java添加功能。你可以找到它的描述here。我想知道是否有办法编写自定义Java编译器(或编译器的扩展)。代码仍然会编译成标准的Java代码,因此我不需要自定义JVM(或JRE,无论哪个)。如果有人知道如何做到这一点,请告诉我。如果您知道这是不可能的,您可以将我链接到证据(可能是Oracle的声明)吗?谢谢!
答案 0 :(得分:3)
Scala以JVM为目标,其Structural Typing可以满足您的需求。例如:
def generateNickname(name: {def getName(): String; def setName(name: String): Unit}): String {
// ...
}
答案 1 :(得分:1)
Eclipse Compiler for Java(ECJ)是开源的,因此它可以自由修改。请参阅JDT Core documentation。但是,@ univerio建议在开始使用之前先看看Scala是一个好主意。 Scala修复了Java的许多缺点,但仍然编译为JVM代码,因此现有的Java库可以无缝地工作。