lombok 会降低性能吗?
Can lombok decrease performance?
我真的很喜欢 lombok 项目摆脱样板代码的功能。
我的前辈建议我 lombok 似乎使用反射来减少样板代码,我曾经听说过使用反射效果性能。
我的问题是使用项目 lombok 有任何问题吗?
Lombok 在运行时不使用反射。它挂钩到编译器内部并在编译时将代码添加到 类,然后正常编译。
@chrylis 答案是正确的,但要小心对象图(@Data
和 @ToString
注释),例如
@Data
public class A {
private B b;
}
@Data
public class B {
private A a;
}
Lombok 将创建内部无限递归的toString。你应该使用
像 @ToString(exclude = {"a"})
inside class B
我真的很喜欢 lombok 项目摆脱样板代码的功能。 我的前辈建议我 lombok 似乎使用反射来减少样板代码,我曾经听说过使用反射效果性能。 我的问题是使用项目 lombok 有任何问题吗?
Lombok 在运行时不使用反射。它挂钩到编译器内部并在编译时将代码添加到 类,然后正常编译。
@chrylis 答案是正确的,但要小心对象图(@Data
和 @ToString
注释),例如
@Data
public class A {
private B b;
}
@Data
public class B {
private A a;
}
Lombok 将创建内部无限递归的toString。你应该使用
像 @ToString(exclude = {"a"})
inside class B