这个问题在这里已经有了答案:
eclipse java ide junit5:junit.jupiter.api.assertions不可访问(1个答案)
上个月关门了。
我对java和projectlombok是个新手,我正在努力学习一些教程来更好地理解它。我创建了一个非常简单的java项目来测试lombok项目,它抛出了错误 Data cannot be resolved to a type
当我添加
annotation @Data
去我的班。
我使用macos和eclipseide来运行java应用程序。以下是我运行第一个java和lombok项目所遵循的步骤:
下载了最新的project lombok版本1.18.16,并将其放在documents文件夹中。
使用以下命令在我的系统中安装了lombok项目 java -jar lombok.jar
.
重新启动我的eclipse并验证了在eclipse->about eclipse中安装了lombok项目:安装了lombokv1.18.16“enviousferret”。https://projectlombok.org/"
创建了一个新的java项目和类 Alien
.
将lombokjar项目添加到我的项目类路径中。
添加了 @Data
我的注解 Alien
类并导入jar文件,但我得到了错误 The type lombok.Data is not accessible
我的进口声明 import lombok.Data;
而且,我得到了错误 Data cannot be resolved to a type
在课堂上做注解 public @Data class Alien
我真的不知道怎么了。我试图找出答案,但所有的答案都提到了相同的步骤。我只是想知道我做错了什么。任何帮助都将不胜感激。
以下是我的完整代码:
package com.lamboktest;
import lombok.Data;
public @Data class Alien {
private int age;
private String name;
}
2条答案
按热度按时间xfb7svmp1#
错误
The type SOMETYPE is not accessible
是。。。奇怪的。据我所知,只有三种方法可以得到这个错误:lombok.Data
不是公开的。但是,是的,所以这不可能。您已经在eclipse中手动添加了一个禁止包列表(“访问规则”),以拒绝自己访问lombok。想必,如果你那样做了,你会记得的,所以不可能是这个。
lombok作为一个模块加载,并且
lombok
未导出包。除此之外,lombok仅有的版本要么不是模块化的(没有模块信息的jar文件导出所有内容),要么是模块化的,而且lombok
包已导出。所以不可能是这个。也许仔细检查一下这些是有用的:
我想是吧
javap -cp lombok.jar lombok.Data
,并检查它是公共的,但是,这不能是它,所以您可能不需要麻烦。对于访问规则,这是3个不太可能的选项中最有可能的,进入项目的设置(在包资源管理器中右键单击它,然后选择“属性…”,您可以从那里设置很多内容),转到“构建路径”,找到lombok.jar,打开它,然后选中“访问规则”。应为“未定义规则”。
进入项目的设置,确保它都设置为java8,然后重新生成。想必您想使用新特性,但关键是至少要将其隔离到:这是一个模块问题。
deyfvvtc2#
张贴答案,因为它可能对将来的人有用。
如评论中所述,删除了该文件
module-info.java
它是在项目创建过程中默认创建的。一切如期进行。