java中找不到符号错误怎么解决
java中找不到符号错误怎么解决
这篇文章主要介绍“java中找不到符号错误怎么解决”,在日常操作中,相信很多人在java中找不到符号错误怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中找不到符号错误怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
01、“找不到符号”错误是什么意思
先来看一段代码:
Strings=String();
有点经验的 Java 程序员应该能够发现上面这段代码中的错误,它缺少了一个 new
关键字。因此,这段代码在编译阶段是不会通过的。
当我们对编译错误置之不理,尝试运行它的时候,程序会抛出以下错误。
“找不到符号”,意味着要么源代码有着明显的错误,要么编译方式有问题。总之呢,是我们程序员搞的鬼,把编译器搞懵逼了,它有点力不从心,很无辜。
02、“找不到符号”是如何发生的
1)拼写错误
程序员毕竟也是人,是人就会犯错。
单词拼错了,比如说把 StringBuilder 拼写成了 StringBiulder。
StringBuildersb=newStringBiulder();//找不到符号,类StringBiulder
大小写错了,比如说把 StringBuilder 拼写成了 Stringbuilder。
StringBuildersb=newStringbuilder();//找不到符号,类Stringbuilder
2)未声明变量
有时候,我们会在没有声明变量的情况下使用一个变量。
System.out.println(sss);//找不到符号,变量sss
或者变量超出了作用域。
for(inti=0;i<100;i++);
{
System.out.println("iis"+i);
}
上面这段代码很不容易发现错误,因为仅仅是在“{”前面多了一个“;”。“;”使得 for 循环的主体被切割成了两个部分,“{}”中的 i 超出了“()”中定义的 i 范围。
3)方法用错了,或者不存在
比如说,Java 如何获取数组和字符串的长度?length 还是 length()?
String[]strs={"沉默王二"};
System.out.println(strs.length());//找不到符号,方法length()
Stringstr="沉默王二";
System.out.println(str.length);//找不到符号,变量length
4)忘记导入类了
在使用第三方类库的时候,切记要先导入类。
StringUtils.upperCase("abcd");//找不到符号,类StringUtils
不过,IDEA 中可以设置类自动导入,来避免这个错误。
。。。。。。
导致出现“找不到符号”的错误原因千奇百怪,上面也只是列举出了其中的一小部分。问题的根源在于程序员本身,随着编程经验的积累,以及集成开发工具的帮助,这些错误很容易在代码编写阶段被发现。
03、如何修复“找不到符号”错误
一般来说,修复“找不到符号”的错误很简单,要么根据 IDE 的提示在编写代码的时候直接修复;要么根据运行后输出的堆栈日志顺藤摸瓜。
日志会给出具体的行号,以及错误的类型。根据提示,想一下自己的代码要表达什么意思,然后做出修复的具体动作。比如上图中提醒我们 35 行代码出错了,找不到变量 j,那么就意味着我们需要给变量 j 一个类型声明即可。
04、更复杂的原因
在实际的项目当中,出现“找不到符号”的错误原因往往很复杂,但大多数情况下,可以归结为以下几点:
编码格式不对。比如说应该是 UTF-8,但有些遗留的项目会设置为 GBK、GB2312 等等。
JDK 的版本不匹配。比如说某些团队成员的电脑上安装的是 JDK 1.6,有的是 JDK 8,版本升级后的一些新语法自然就会和老版本发生冲突。
第三方类库的升级。一些开源的共同类库往往会不兼容旧的版本,比如说最新版的 StringUtils 类的包为
org.apache.commons.lang3
,但之前是org.apache.commons.lang
。类名和方法名都相同,但包名不同,方法的参数不同,在使用的时候就容易造成“找不到符号”。
在我初学 Java 的时候,老师要求我们用记事本来编写代码,然后在命令行中编译和运行代码,那时候真的叫一个痛苦啊。
经常出现“找不到符号”的错误,差点入门到放弃。因为初学阶段,哪能记住那么多编程语言的规则啊,经常忘东忘西,再者记事本是没有行号的,找起问题来,简直要了老命。
吃过这样的苦后,我就强烈建议初学者不要再使用记事本编程了(莫装逼),直接上 IDE,有啥问题,工具帮你悠着点。
到此,关于“java中找不到符号错误怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!