Eclipse 抛出使用 Project Lombok 的错误 "Data cannot be resolved to a type"
Eclipse throws the error "Data cannot be resolved to a type" for using the Project Lombok
我是 Java 和 Project Lombok 的新手,我正在尝试按照一些教程来更好地理解它。我创建了一个非常简单的 java 项目来测试 Project Lombok,当我将 annotation
@Data
添加到我的 class 时它会抛出错误 Data cannot be resolved to a type
。 =24=]
我正在使用 macOS 和 Eclipse IDE 运行我的 Java 应用程序。以下是我 运行 我的第一个 Java 和 Lombok 项目遵循的步骤:
下载了最新的 Project Lombok 版本 1.18.16 并将其放在 Documents 文件夹中。
使用命令 java -jar lombok.jar
.
在我的系统中安装了 Project Lombok
重新启动我的 Eclipse 并验证 Project Lombok 安装在 Eclipse -> 关于 Eclipse 中:“安装了 Lombok v1.18.16 “Envious Ferret”。https://projectlombok.org/"
创建了一个新的 Java 项目和 class Alien
.
将 Project Lombok JAR 添加到我的项目类路径中。
将 @Data
注释添加到我的 Alien
class 并导入了 JAR 文件,但我的导入语句出现错误 The type lombok.Data is not accessible
import lombok.Data;
此外,我在 class 级别 public @Data class Alien
的注释中收到错误 Data cannot be resolved to a type
我真的不确定哪里出了问题。我试图找出答案,但所有答案都提到了相同的步骤。我只是想知道做错了什么。任何帮助将不胜感激。
以下是我的完整代码:
package com.lamboktest;
import lombok.Data;
public @Data class Alien {
private int age;
private String name;
}
错误 The type SOMETYPE is not accessible
是...奇怪。据我所知,只有三种方法可以获得该错误:
lombok.Data
不是 public。除了,它是,所以这不可能。
- 您已在 eclipse 中手动添加了禁止包列表 ('access rules'),以拒绝您自己访问 lombok。据推测,如果您这样做了,您会记得的,所以不可能是这个。
- lombok 作为模块加载,
lombok
包未导出。除了,唯一存在的 lombok 版本不是模块化的(没有模块信息的 jar 文件导出所有内容),或者它们是,并且 lombok
包被导出。所以不可能是这个。
仔细检查所有这些也许会有用:
- 我猜
javap -cp lombok.jar lombok.Data
,并检查它是 public,但是,这不可能,所以您可能不需要打扰。
- 对于访问规则的事情,这是 3 个非常不可能的选项中最有可能的,进入你的项目设置(在例如包资源管理器中右键单击它,然后选择 'properties...',你可以设置那里有很多东西),转到 'build path',找到 lombok.jar,打开它,然后检查 'access rules'。它应该显示为 'no rules defined'.
- 进入您的项目设置并确保它全部设置为 java8,然后重建。大概您想使用新功能,但关键是至少要隔离到:这是一个模块问题。
张贴答案,因为它可能对以后的人有用。
如评论 removed/deleted 中所述,文件 module-info.java
在项目创建期间默认创建。一切都按预期进行。
我是 Java 和 Project Lombok 的新手,我正在尝试按照一些教程来更好地理解它。我创建了一个非常简单的 java 项目来测试 Project Lombok,当我将 annotation
@Data
添加到我的 class 时它会抛出错误 Data cannot be resolved to a type
。 =24=]
我正在使用 macOS 和 Eclipse IDE 运行我的 Java 应用程序。以下是我 运行 我的第一个 Java 和 Lombok 项目遵循的步骤:
下载了最新的 Project Lombok 版本 1.18.16 并将其放在 Documents 文件夹中。
使用命令
在我的系统中安装了 Project Lombokjava -jar lombok.jar
.重新启动我的 Eclipse 并验证 Project Lombok 安装在 Eclipse -> 关于 Eclipse 中:“安装了 Lombok v1.18.16 “Envious Ferret”。https://projectlombok.org/"
创建了一个新的 Java 项目和 class
Alien
.将 Project Lombok JAR 添加到我的项目类路径中。
将
@Data
注释添加到我的Alien
class 并导入了 JAR 文件,但我的导入语句出现错误The type lombok.Data is not accessible
import lombok.Data;
此外,我在 class 级别
的注释中收到错误public @Data class Alien
Data cannot be resolved to a type
我真的不确定哪里出了问题。我试图找出答案,但所有答案都提到了相同的步骤。我只是想知道做错了什么。任何帮助将不胜感激。
以下是我的完整代码:
package com.lamboktest;
import lombok.Data;
public @Data class Alien {
private int age;
private String name;
}
错误 The type SOMETYPE is not accessible
是...奇怪。据我所知,只有三种方法可以获得该错误:
lombok.Data
不是 public。除了,它是,所以这不可能。- 您已在 eclipse 中手动添加了禁止包列表 ('access rules'),以拒绝您自己访问 lombok。据推测,如果您这样做了,您会记得的,所以不可能是这个。
- lombok 作为模块加载,
lombok
包未导出。除了,唯一存在的 lombok 版本不是模块化的(没有模块信息的 jar 文件导出所有内容),或者它们是,并且lombok
包被导出。所以不可能是这个。
仔细检查所有这些也许会有用:
- 我猜
javap -cp lombok.jar lombok.Data
,并检查它是 public,但是,这不可能,所以您可能不需要打扰。 - 对于访问规则的事情,这是 3 个非常不可能的选项中最有可能的,进入你的项目设置(在例如包资源管理器中右键单击它,然后选择 'properties...',你可以设置那里有很多东西),转到 'build path',找到 lombok.jar,打开它,然后检查 'access rules'。它应该显示为 'no rules defined'.
- 进入您的项目设置并确保它全部设置为 java8,然后重建。大概您想使用新功能,但关键是至少要隔离到:这是一个模块问题。
张贴答案,因为它可能对以后的人有用。
如评论 removed/deleted 中所述,文件 module-info.java
在项目创建期间默认创建。一切都按预期进行。