java - 如何向 Java 添加(次要的)语法糖?

标签 java eclipse language-features syntactic-sugar

假设我想向 Java 添加次要的语法糖。只是一些小事,比如添加正则表达式模式文字,或者可能是 base-2 文字,或多行字符串等。语法上没什么大不了的(至少现在是这样)。

人们会怎么做呢?

我需要扩展字节码编译器吗? (这可能吗?)

在将源代码提供给标准 Java 编译器之前,我可以编写 Eclipse 插件来执行简单的源代码转换吗?

最佳答案

我会看一下 Project Lombok并尝试重用他们所做的尝试。他们使用 Java 5 注释来 Hook Java 代理,该代理可以在编译代码之前操纵抽象语法树。他们目前正致力于创建一个 API 以允许编写可与 javac 或主要 IDE(如 Eclipse 和 NetBeans)一起使用的自定义转换器。除了触发生成代码的注释外,他们还计划添加语法更改(可能是 mixin 或 Java 7 之前的闭包语法)。

(我可能有些细节略有偏差,但我认为我已经很接近了)。

Lombok 是开源的,因此研究他们的代码并尝试在此基础上构建可能是一个好的开始。

否则,您可以尝试更改 javac 编译器。尽管据我所知,对于不是编译器和 Java 专家的任何人来说,这可能是一种令人沮丧的令人毛骨悚然的练习。

关于java - 如何向 Java 添加(次要的)语法糖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2396036/

相关文章:

java - Sparksee 在 session 关闭时崩溃

java - Spring MVC 3.0 + jsp页脚

java - 从远程服务器运行 jsp 页面

C1x : When will it land, 会发生什么?

php - PHP 中的 GOTO 命令?

java - 如何在android中检索json数组?

java - 手动设置 HttpStatus 时 @ExceptionHandler 失败

java - Eclipse:无法探索我的项目,无法生成资源文件

android - 在 android 中使用 jts 拓扑套件

scala - 如何在 Scala 中定义保留前导标记的三元运算符?