IDEA编译java文件报找不到符号错误

解决SpringBoot中Lombok注解编译错误
本文详细解析了在SpringBoot项目中,使用JHipster生成的项目遇到的手动创建类中Lombok @Getter和@Setter注解导致的编译错误问题。通过删除注解并手动实现getter和setter方法,成功解决了编译错误。

本文可能仅适用于JHipster生成的项目

前天遇到一个问题,SpringBoot程序可以正常启动,但是使用mvn package命令或者对具体文件进行compile,就会报下面错误:

[ERROR] /D:/xx/src/main/java/com/xx/xx/xxx/xxxx/xxxxx.java:[122,35] 找不到符号
[ERROR] 符号: 方法 getRecords()
[ERROR] 位置: 类型为com.xx.xx.xx.xxxx.TableSchema的变量 schema

报了错之后,程序也起不开了…于是就在网上各种搜,各种方法都试了一下,结果发现还是不行。

正当绝望的时候,突然想起项目是用 JHipster 生成的,使用jdl文件生成的model,每个变量的getter setter方法都陈列出来了,而报错的文件是手动创建的,使用了lombok@Getter@Setter注解来代替以前那种方式,(因为另外一个项目使用的都是lombok,所以在这个新项目中情不自禁的就用了…)导致程序在编译的时候识别不了,所以报上面的错误,于是就删了注解,把每个变量的getter setter方法都陈列出来,然后问题就解决了…

其他原因导致报这种错误,就不多写了,因为很多博客写的都挺详细的,基本上都看过了…

顺便再吐槽一下,JHipster用起来感觉好难啊啊啊啊啊啊…

Java 编译过程中出现“不到符号错误(`cannot find symbol`)通常是由于编译无法识别某个标识符(如变量名、方法名、名等)所导致的。这种错误属于编译错误,不会在运行时发生,因此必须在代码中修复后才能成功编译和运行程序。 以下是常见原因及对应的解决方法: ### 1. 拼写错误或大小写错误 Java 是一种区分大小写的语言,因此变量、方法和名的拼写和大小写必须完全匹配。例如: ```java String myVar = "Hello"; System.out.println(myvar); // 错:不到符号“myvar” ``` 应更正为: ```java System.out.println(myVar); // 正确 ``` ### 2. 未声明变量或方法 在使用变量或方法之前未进行声明或定义,编译器将无法识别该符号。例如: ```java System.out.println(x); // 错:不到符号“x” ``` 解决方法是确保变量或方法在使用前已正确定义: ```java int x = 10; System.out.println(x); ``` ### 3. 方法或变量作用域问题 如果尝试访问一个超出其作用域的变量或方法,也会导致“不到符号错误。例如,在一个方法中定义的局部变量试图在另一个方法中访问: ```java public class Test { public void method1() { int localVar = 5; } public void method2() { System.out.println(localVar); // 错:不到符号“localVar” } } ``` 应将变量提升为成员变量或通过参数传递。 ### 4. 路径问题或未导入 当使用外部或包中的而未正确导入时,编译无法识别该。例如: ```java ArrayList<String> list = new ArrayList<>(); // 错:不到符号“ArrayList” ``` 应添加正确的 import 语句: ```java import java.util.ArrayList; ``` ### 5. 编译顺序问题 如果程序依赖多个文件,但未按照正确的顺序进行编译,也可能导致“不到符号错误。确保所有依赖的文件已正确编译,并在编译时指定路径: ```bash javac -cp . MyClass.java ``` ### 6. JDK 版本不兼容 某些或方法可能在较旧版本的 JDK 中不可用。例如,`String.isBlank()` 方法仅在 JDK 11 及以上版本中可用。如果使用旧版本的 JDK 编译,则会错。解决方法是升级 JDK 并确保环境变量配置正确。 ### 7. IDE 缓存问题 在使用集成开发环境(如 IntelliJ IDEA 或 Eclipse)时,有时由于缓存机制,即使代码已修改,IDE 仍可能错。尝试清理项目并重新构建: - 在 IntelliJ 中:`Build > Clean Project` 和 `Build > Rebuild Project` - 在 Eclipse 中:`Project > Clean` ### 8. Maven 或 Gradle 构建配置问题 如果项目使用构建工具,确保依赖项已正确声明并在 `pom.xml`(Maven)或 `build.gradle`(Gradle)中配置。例如,Maven 中未正确引入依赖可能导致无法识别。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值