请解释以下关于“无法找到符号”,“无法解析符号”或“符号未找到”的错误(在Java中):
它们是什么意思? 什么东西会引起它们? 程序员如何着手修复它们?
本问题旨在针对Java中常见的编译错误进行全面的问答。
请解释以下关于“无法找到符号”,“无法解析符号”或“符号未找到”的错误(在Java中):
它们是什么意思? 什么东西会引起它们? 程序员如何着手修复它们?
本问题旨在针对Java中常见的编译错误进行全面的问答。
当前回答
“找不到”的意思是,编译器找不到合适的变量,方法,类等…如果你得到了错误提示,首先你要找到得到错误提示的代码行,然后你就可以在使用它之前找到哪个变量、方法或类没有定义。确认初始化该变量后,方法或类可以用于以后的需要…考虑下面的例子。
我将创建一个演示类并打印一个名称…
class demo{
public static void main(String a[]){
System.out.print(name);
}
}
现在看看结果。
该错误说,“变量名找不到”..为name变量定义并初始化值可以消除该错误。
class demo{
public static void main(String a[]){
String name="smith";
System.out.print(name);
}
}
现在看看新的输出……
成功解决了这个错误..同时,如果你可以得到“找不到方法”或“找不到类”的东西,首先定义一个类或方法,然后使用它..
其他回答
我是这样解决这个错误的……疯狂的机器人。我有包的名称为适配器和我重构名称适配器与“a”而不是“a”,并解决了这个错误。
您使用maven compile编译代码,然后使用maven test运行它,结果很好。现在,如果你在代码中改变了一些东西,然后在没有编译的情况下运行它,你会得到这个错误。
解决方案:再次编译,然后运行测试。对我来说是这样的。
我们在一个Java项目中得到了一个错误,该项目被设置为Gradle多项目构建。结果发现其中一个子项目缺少Gradle Java Library插件。 这阻止了子项目的类文件对构建中的其他项目可见。
在将Java库插件添加到子项目的构建之后。用下面的方法Gradle,错误就消失了:
plugins {
...
id 'java-library'
}
要获得提示,请仔细查看抛出错误的类名name和行号,例如: 编译失败 [ERROR] \applications\xxxxx.java:[44,30] ERROR:无法找到符号
另一个原因是java版本不支持的方法,例如jdk7 vs 8。 检查您的%JAVA_HOME%
解决了
使用IntelliJ
选择Build->Rebuild Project将解决这个问题