Java中找不到符号 Cannot find symbol

时间:2020-02-23 14:33:58  来源:igfitidea点击:

如果声明了一些编译器不明白的东西时,我们将收到此错误(Cannot find symbol)。
编译何时编译任何程序时,编译器创建标识符列表。
如果编译无法理解任何标识符,则会收到此错误。

此错误通常表示编译器无法识别任何标识符,并且无法弄清楚它的意义。

让我们用一个非常基本的例子来理解。

package org.arpit.theitroad;
 
public class CannotFindSymbolMain {
 
	public static void main(String[] args)
	{
		int a = 10;
		int b = 2;
		
      division = a/b;
		System.out.println(division);
	}
}

我们将低于编译错误。

CannotFindSymbolMain.java:11: error: cannot find symbol division = a/ b; symbol:   variable division location: class CannotFindSymbolMain CannotFindSymbolMain.java:12: error: cannot find symbol System.out.println(division); symbol:   variable division location: class CannotFindSymbolMain 2 errors

你明白这个问题了吗?
我们正在收到此错误,因为我们没有声明 division在使用之前。
我们需要将第11行更改为:

int division = a/b;

这将解决上面的编译错误。

此错误可能有多种原因。

  • 你忘了声明任何变量
  • 你拼错了 methodname,类,变量或者接口。

请注意,Java是区分大小写的语言,所以 divisionDivision将不被认为是相同的。

  • 我们没有正确导入任何程序
  • 你忘了 new初始化对象时的关键字。
Integer i = Integer();

我们忘了使用 new,所以应该是

Integer i = new Integer();
  • 可能存在问题 source file encoding。即使标识符看起来完全一样,但可以隐藏字符

如我们所见,此错误可能有多种原因。
我们需要弄清楚程序中可能出现此错误的原因。
在大多数情况下,此错误是由于 undeclared variable或者 misspelled identifier