Tag: lombok

如何在Lombok构建器中的构造函数之后运行代码

我有一个类,我想使用Lombok.Builder,我需要预处理一些参数。 像这样的东西: @Builder public class Foo { public String val1; public int val2; public List listValues; public void init(){ // do some checks with the values. } } 通常我会在NoArg构造函数上调用init() ,但是使用生成的构建器我无法这样做。 有没有办法让生成的构建器调用此init ? 例如, build()将生成如下代码: public Foo build() { Foo foo = Foo(params….) foo.init(); return foo; } 我知道我可以手动编写all args构造函数,Builder将通过它调用它,我可以在那里调用init 。 但这是次优解决方案,因为我的类可能偶尔会添加新字段,这也意味着更改构造函数。

lombok中的默认值。 如何使用构造函数和构建器初始化默认值

我有一个对象 @Data @Builder @NoArgsConstructor @AllArgsConstructor public class UserInfo { private int id; private String nick; private boolean isEmailConfirmed = true; } 我用两种方式初始化它 UserInfo ui = new UserInfo(); UserInfo ui2 = UserInfo.builder().build(); System.out.println(“ui: ” + ui.isEmailConfirmed()); System.out.println(“ui2: ” + ui2.isEmailConfirmed()); 这是输出 ui: true ui2: false 似乎构建器没有获得默认值。 我将@Builder.Default注释添加到我的属性中,我的对象现在看起来像这样 @Data @Builder @NoArgsConstructor @AllArgsConstructor public class UserInfo { private […]

如何在方法上使用Lombok @Builder注释

我想有一个简单的方法来构建测试数据,并发现Builder模式非常适合这里描述的。 然而,为了减少组件测试中的样板代码,我发现来自Project Lombok的@Builder是一个不错的候选人。 但是,我无法找到有关如何在方法上使用它的任何文档或在线示例。 我想在某种工厂方法上使用@Builder,因为我无法对实现进行任何更改。 有人可以给出一个关于如何在方法上实际使用@Builder的考试吗?

Project Lombok有哪些风险?

我想出了新的一年的性能目标,我认为我的目标是减少代码库的大小,特别是样板,我会觉得很有趣。 我提出的解决这个问题的一个动作就是使用Project Lombok来使豆子尽可能短。 但我习惯于忽视新软件和方法的缺点,所以我依赖于Stack Overflow社区:谁能告诉我为什么龙目岛是一个坏主意?

Lombok不适用于Eclipse Neon

我下载了lombok.jar(lombok-1.16.14.jar)把它放到我的下载中。 然后我点击了这个jar,执行正确识别我的MacOS上的Eclipse实例,然后我选择了我想要的实例。 Lombok也在pom.xml中指定org.projectlombok lombok 1.16.14提供 在eclipse.ini中我添加了:-javaagent:../ Eclipse / lombok.jar lombok.jar被添加到与eclise.ini /Applications/Eclipse.app/Contents/Eclipse相同的目录中 尽管我的mvn构建工作正常,但我仍然在Eclipse问题中遇到setter / getter错误。 用户代码: @Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor @EntityListeners(UserListener.class) public class User implements Serializable, UserDetails { … 错误: The method getRole() is undefined for the type User

Lombok @builder在一个扩展另一个类的类上

我有两个类Child扩展Parent 。 我需要在类上放置@Builder注释,这样我就不需要自己创建构建器了。 package jerry;// Internal compiler error: java.lang.NullPointerException import lombok.AllArgsConstructor; import lombok.Builder; @AllArgsConstructor(onConstructor=@__(@Builder)) public class Child extends Parent { //Multiple markers at this line // – Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor // – overrides java.lang.Object.toString private String a; private int b; private boolean c; } @Builder public class […]

为Lombok创建自定义注释

我在我的代码中使用了Lombok来自动生成Getter和Setter代码,现在我想添加其他个人Annotations并使用它。 例如,我想添加@Existvalidation现有密钥列表: @Getter @Setter public class User { private String name; private List keys; public boolean existKeys(Integer key) { boolean exist = keys.contains(key); return exist; } } 在创建Annotation之后,我将只需执行以下操作: @Getter @Setter public class User { private String name; @Exist private List keys; }

Lombok替代清除代码而没有getter / setter / toString / constructors

你知道龙目岛的其他选择吗? 使用Lombok我们可以忘记使用getter和setter以及toString来搞乱这个类,我想在我的项目中使用它但是我想知道是否有更好的选择? 我使用Java 1.7 ..并且无法更改为1.8。

什么语法`@__()`在Lombok中意味着什么?

我一直在和Lombok一起工作并积极使用2个月。 使用Java我更熟悉一点。 但是,我第一次面对语言中的以下语法结构: @RequiredArgsController(onController = @__(@Autowired)) ^^^ 这是什么意思,它是如何编译的?

使用lombok从现有对象构建对象

可以说我有一个类似于lombok的注释类 @Builder class Band { String name; String type; } 我知道我能做到: Band rollingStones = Band.builder().name(“Rolling Stones”).type(“Rock Band”).build(); 有没有一种简单的方法来创建Foo的对象,使用现有对象作为模板并更改其中一个属性? 就像是: Band nirvana = Band.builder(rollingStones).name(“Nirvana”); 我在lombok文档中找不到这个。