2

我希望能够处理预构建的 java 项目,以便我可以找到所有注释,例如 @Getter,并将它们替换为分配字段的实际 getter 语句。

@Getter String s = "string";

我基本上想做“Project Lombok”所做的事情,但我想自己做,学习和简化它以满足我的需要。

问题是,好吧,我不知道从哪里开始。我已经搜索并没有发现任何用处,并且也尝试过自己,但没有运气。我希望它在 eclipse 构建上运行,所以 jar 是自动正确的。我也想创建它,所以当我将注释插入到 java 文件中时,它不会显示为错误,我假设我可以使用依赖项来解决这个问题。

就经验而言,我知道如何使用和创建注释,但仅用于存储元数据,而不是用作占位符。

如果您有任何提示或知道任何资源来帮助我,我将不胜感激。

PS 我已经查看了 Project Lombok 的源代码,它过于广泛,无法找到需要做的事情。

4

3 回答 3

2

AFAIK Lombok 在注释处理器中进行了一些 AST 操作(不是 100% 确定),规范并未正式支持。因此,它更像是克服 Java 语言中的一些缺点的 hack。

于 2014-05-14T18:33:06.750 回答
0

您需要编写一个自定义注释处理器。

基本上,您将在最终编译步骤之前搜索您的注释并将自定义代码添加到生成的类文件中。

您的处理器需要实现javax.annotation.processing.Processor以处理您的注释。我以前为 NetBeans 做过这个,并使用了几年前的一篇好文章作为指南http://deors.wordpress.com/2011/10/08/annotation-processors/

祝你好运!

于 2014-05-14T19:40:02.427 回答
0

这很简单。首先,您需要将 lombok.jar 附加到您的项目中。
右键单击您的项目并转到属性。附加外部罐子/库。现在导入以下内容:-

import lombok.Getter;
import lombok.Setter;
import lombok.AccessLevel;
// and so on....

现在您可以按如下方式使用@Getter @Setter:-

@Getter @Setter private Car car;

现在您可以使用 getCar() 和 setCar(...)
注意:- 您可能需要为 NetBeans 启用注释处理。不要问我怎么做。只需谷歌它或访问龙目岛的网站。

于 2014-05-14T19:15:24.897 回答