当前位置: 首页 > 知识库问答 >
问题:

如何使lombok注释真正适用于getter和setter

虞航
2023-03-14

我正在尝试使用lombok getters和setters注释。据我所知,带注释的代码是在运行时生成的,而不是在编译时生成的,那么如何利用自动生成的getter和setter来编写代码呢?

例如,我有一个这样的类

@lombok.Getters
@lombok.Setters
public class MyLombokTesting {

private String userName;

}

但是,如果这些注释不是在编写代码时生成的,那么这些注释有什么用呢...

MyLombokTesting myLombokTesting = new MyLombokTesting();
String username = myLombokTesting.getUserName();
or myLombokTesting.setUserName("some username");

显然,我可以用一个单参数构造函数来设置用户名,但是getter呢?

共有1个答案

湛财
2023-03-14

首先,Lombok确实运行编译时来动态更改生成的类文件。

可能,lombok没有正确安装在Eclipse中。请参阅以下关于Eclipse中lombok安装问题的答案。

此外,注释的运行时处理并不是它们的唯一用途。Java5已经随apt提供了注释处理工具,而且Java6的注释可以由标准编译器(javac)处理。批注可以生成类文件、源文件或其他资源文件。

 类似资料:
  • 我有一把刀: 问题是,当我试图使用DAO进行加载调用时,使用DynamoDBMapper以field d1作为哈希键来获取项目,它会抛出一个DynamoDBExc0019,说:为公共DAO. getField2()找到了空键,但实际上表的值对应于field d2。问题,这是因为Lombok注释而不是手动突变代码,还是一般来说我们一起使用Lombok和DynamoDBAnnotions?

  • 我想完成但不明白它是如何工作的 使用这段代码,我想注释生成它们各自的setter和getter,这样我就可以使用像 编辑2013-10-25 我的目标是构建一个能够做到这一点的库,因为我太好奇了,想了解如何在内部工作,所以我将能够用这个特性来支持我的框架,因为jet只是一个小实用程序,但在未来我希望它能为我节省大量的工作,你可以在github WSD Android上看到

  • 我在我的项目中添加了Lombok maven存储库并成功使用了Lombok注释。我试图从另一个类访问setter和getter方法,但无法访问这些方法。我使用的是Spring Boot版本2.1.1和STS。这是我的简单代码片段。

  • 我想有一种简单的方法来构建测试数据,并发现生成器模式非常适合这里描述的情况。然而,为了减少组件测试中的样板代码,甚至更多,我发现来自龙目岛项目的@Builder是一个很好的候选人。然而,我找不到任何关于如何在方法上使用它的留档或在线示例。我想在某种工厂方法上使用,因为我不能对实现进行任何更改。 有人能举例说明如何在方法上实际使用?

  • 我是Spring的新手,我很困惑@CreatedDate注释在实体中是如何工作的。 我做了一次谷歌搜索,有很多解决方案,但除了一个,没有一个适合我。我很困惑为什么? 这是我先试的 它不起作用。我为列中的值获取了NULL。 然后我做了这个。 这实际上将时间戳存储在db中。我的问题是,我遵循的大多数教程都建议我不需要来获取当前时间戳。看起来我确实需要它。我缺少什么吗?

  • 我也可以使用,但它有与@data相同的问题。 为了解决的问题,我可以为字段编写自己的私有setter来重写生成的setter。但也许有更好的办法?这种情况下的最佳实践是什么?