如何使用注释替换Java中的代码?

时间:2014-05-14 18:25:20

标签: java eclipse annotations lombok

我希望能够处理预编译的java项目,这样我就可以找到所有注释,例如@Getter,并用指定字段的实际getter语句替换它们。

@Getter String s = "string";

我基本上想做什么" Project Lombok"是的,但我想自己做,学习并根据我的需要简化它。

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

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

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

P.S。我已经查看了Project Lombok的源代码,它太过广泛,无法找到需要完成的工作。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这非常简单。首先,您需要将lombok.jar附加到您的项目中。
右键单击您的项目&去物业。附加外部jar /库。现在导入以下内容: -

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

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

@Getter @Setter private Car car;

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

答案 2 :(得分:0)

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

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

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

祝你好运!