【发布时间】:2022-01-26 05:17:05
【问题描述】:
我在一个 Eclipse 项目中有 2 个类。
package com.example;
import lombok.Getter;
import lombok.experimental.Accessors;
@Accessors(fluent = true)
@Getter
public class MyBean {
private String value = "aaa";
}
package com.example;
public class MyClass {
public static void main() {
System.out.println(new MyBean().value());
}
}
构建后,即使Eclipse的内容辅助显示MyBean#value()方法,Eclips为MyBean类和"The method value() is undefined for the type MyClass"报告"the value of the field value is not used",构建前没有警告,编译,执行都成功完成。
所以我猜 Lombok 工作正常,问题是 Eclipse 无法识别 Lombok。
这是我尝试和发现的。
- 将 lombok.jar 附加到 Eclipse 并检查 eclipse.ini
- 清理并重建项目
- 从 maven 本地存储库中删除 Lombok 依赖项,然后重新安装
- 问题只出现在这个项目中。 Eclipse 使用 lombok 正确处理其他项目(并且所有项目都属于同一个工作区)。
- 我无法在其他项目中重现这些问题。
有什么想法吗?
【问题讨论】:
-
我的建议是停止使用 lombok 来生成直接从您的代码访问的方法(构造函数和访问器)。对于留下来维护您的代码的人来说,这是一个持续的头痛和沮丧的根源。将它用于不直接连接到业务逻辑的东西,例如记录样板,toStrings 等。Eclipse 可以为您生成相同的代码。改用它。