java 编译找不到子类_关于Java:”找不到符号”Cannot find symbol编译错误意味着什么?...

请解释以下"找不到符号"错误:

这个错误是什么意思?

什么事情会导致这个错误?

程序员如何解决这个错误?

这个问题被设计成一个关于Java中"找不到符号"编译错误的综合问题。

1。"找不到符号"错误是什么意思?

首先,它是一个编译错误1。这意味着Java源代码中存在问题,或者编译过程中存在问题。好的。

您的Java源代码包括以下内容:好的。

关键词:如true、false、class、while等。

文字:如42和'X'和"Hi mum!"。

运算符和其他非字母数字标记:如+、=、{等。

标识符:如Reader、i、toString、processEquibalancedElephants等。

注释和空白。

"找不到符号"错误是关于标识符的。编译代码时,编译器需要计算出代码中每个标识符的含义。好的。

"找不到符号"错误表示编译器无法执行此操作。您的代码似乎引用了编译器无法理解的内容。好的。2。什么会导致"找不到符号"错误?

作为一级命令,只有一个原因。编译器查找了所有应该定义标识符的地方,但找不到定义。这可能是由一些事情引起的。常见的有:好的。

对于一般标识符:

也许你把名字拼错了,即用StringBiulder代替StringBuilder。Java不能也不会试图补偿拼写错误或键入错误。

也许你搞错了,也就是说,用StringBuilder代替StringBuilder。所有Java标识符都区分大小写。

也许您不恰当地使用下划线;例如,mystring和my_string是不同的。(如果你坚持Java风格的规则,你将在很大程度上避免这种错误……)

也许您正试图使用声明为"其他地方"的内容;即,在另一个上下文中,您隐式地告诉编译器要查看的内容。(不同的班级?不同的范围?一个不同的包裹?不同的代码库?)

对于应引用变量的标识符:

也许你忘了声明变量。

在您试图使用变量声明时,它可能超出了范围。(见下例)

对于应该是方法名或字段名的标识符:

可能您正试图引用一个继承的方法或字段,而该方法或字段没有在父类/祖先类或接口中声明。

可能您试图引用的方法或字段在您使用的类型中不存在(即尚未声明);例如,"someString".push()2。

也许您试图将方法用作字段,或者相反;例如,"someString".length或someArray.length()。

对于应为类名的标识符:好的。也许你忘了导入类。

也许您使用了"star"导入,但是类没有在您导入的任何包中定义。

也许你忘记了一个new,比如:好的。

String s = String();  // should be 'new String()'

对于类型或实例似乎没有预期的成员的情况:好的。也许您已经声明了一个嵌套类或一个通用参数,它隐藏了您要使用的类型。

可能您正在隐藏静态或实例变量。

可能您导入了错误的类型;例如,由于IDE完成或自动更正。

也许您使用(编译)了错误的API版本。

也许您忘记了将对象强制转换为适当的子类。

问题往往是上述两者的结合。例如,也许你"星"进口了java.io.*,然后尝试使用Files类……在java.nio中,而不是java.io中。或者你是想写一本书。它是java.io中的一个类。好的。

下面是一个示例,说明不正确的变量范围会导致"找不到符号"错误:好的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值