请解释以下关于“无法找到符号”,“无法解析符号”或“符号未找到”的错误(在Java中):
它们是什么意思? 什么东西会引起它们? 程序员如何着手修复它们?
本问题旨在针对Java中常见的编译错误进行全面的问答。
请解释以下关于“无法找到符号”,“无法解析符号”或“符号未找到”的错误(在Java中):
它们是什么意思? 什么东西会引起它们? 程序员如何着手修复它们?
本问题旨在针对Java中常见的编译错误进行全面的问答。
当前回答
我在误差以下
java: cannot find symbol
symbol: class __
要解决这个问题
我尝试启用lambok,重新启动intellij等,但下面对我有用。
Intellij Preferences ->Compiler -> Shared Build process VM Options,设置为
-Djps.track.ap.dependencies=false
比跑
mvn clean install
其他回答
我是这样解决这个错误的……疯狂的机器人。我有包的名称为适配器和我重构名称适配器与“a”而不是“a”,并解决了这个错误。
要获得提示,请仔细查看抛出错误的类名name和行号,例如: 编译失败 [ERROR] \applications\xxxxx.java:[44,30] ERROR:无法找到符号
另一个原因是java版本不支持的方法,例如jdk7 vs 8。 检查您的%JAVA_HOME%
我们在一个Java项目中得到了一个错误,该项目被设置为Gradle多项目构建。结果发现其中一个子项目缺少Gradle Java Library插件。 这阻止了子项目的类文件对构建中的其他项目可见。
在将Java库插件添加到子项目的构建之后。用下面的方法Gradle,错误就消失了:
plugins {
...
id 'java-library'
}
如果你忘记了new,你也会得到这个错误:
String s = String();
与
String s = new String();
因为不带new关键字的调用将尝试寻找一个名为String而不带参数的(本地)方法——而且该方法签名可能没有定义。
如果您在其他地方的构建中遇到此错误,而您的IDE表示一切正常,那么请检查您在两个地方使用的Java版本是否相同。
例如,Java 7和Java 8有不同的API,因此在较旧的Java版本中调用不存在的API会导致此错误。