请解释以下关于“无法找到符号”,“无法解析符号”或“符号未找到”的错误(在Java中):

它们是什么意思? 什么东西会引起它们? 程序员如何着手修复它们?

本问题旨在针对Java中常见的编译错误进行全面的问答。


当前回答

如果你忘记了new,你也会得到这个错误:

String s = String();

String s = new String();

因为不带new关键字的调用将尝试寻找一个名为String而不带参数的(本地)方法——而且该方法签名可能没有定义。

其他回答

解决了

使用IntelliJ

选择Build->Rebuild Project将解决这个问题

我也得到了这个错误。(我在谷歌上搜索了一下,然后转到了这个页面)

问题:我正在从另一个项目B中定义的类调用项目a的类中定义的静态方法。 我得到以下错误:

error: cannot find symbol

解决方案:我通过首先构建定义方法的项目,然后构建调用方法的项目来解决这个问题。

您使用maven compile编译代码,然后使用maven test运行它,结果很好。现在,如果你在代码中改变了一些东西,然后在没有编译的情况下运行它,你会得到这个错误。

解决方案:再次编译,然后运行测试。对我来说是这样的。

我在误差以下

java: cannot find symbol
  symbol: class __

要解决这个问题

我尝试启用lambok,重新启动intellij等,但下面对我有用。

Intellij Preferences ->Compiler -> Shared Build process VM Options,设置为

  -Djps.track.ap.dependencies=false

比跑

mvn clean install

在我的情况下,我必须执行以下操作:

将context.xml文件从src/java/package移动到资源目录(IntelliJ .xml) IDE) 清理目标目录。