您好,登錄后才能下訂單哦!
這篇文章主要介紹“java中找不到符號錯誤怎么解決”,在日常操作中,相信很多人在java中找不到符號錯誤怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java中找不到符號錯誤怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
先來看一段代碼:
String s = String();
有點經驗的 Java 程序員應該能夠發現上面這段代碼中的錯誤,它缺少了一個 new
關鍵字。因此,這段代碼在編譯階段是不會通過的。
當我們對編譯錯誤置之不理,嘗試運行它的時候,程序會拋出以下錯誤。
“找不到符號”,意味著要么源代碼有著明顯的錯誤,要么編譯方式有問題。總之呢,是我們程序員搞的鬼,把編譯器搞懵逼了,它有點力不從心,很無辜。
1)拼寫錯誤
程序員畢竟也是人,是人就會犯錯。
單詞拼錯了,比如說把 StringBuilder 拼寫成了 StringBiulder。
StringBuilder sb = new StringBiulder(); // 找不到符號,類 StringBiulder
大小寫錯了,比如說把 StringBuilder 拼寫成了 Stringbuilder。
StringBuilder sb = new Stringbuilder(); // 找不到符號,類 Stringbuilder
2)未聲明變量
有時候,我們會在沒有聲明變量的情況下使用一個變量。
System.out.println(sss); // 找不到符號,變量 sss
或者變量超出了作用域。
for (int i = 0; i < 100; i++);
{
System.out.println("i is " + i);
}
上面這段代碼很不容易發現錯誤,因為僅僅是在“{”前面多了一個“;”。“;”使得 for 循環的主體被切割成了兩個部分,“{}”中的 i 超出了“()”中定義的 i 范圍。
3)方法用錯了,或者不存在
比如說,Java 如何獲取數組和字符串的長度?length 還是 length()?
String[] strs = {"沉默王二"};
System.out.println(strs.length()); // 找不到符號,方法 length()
String str = "沉默王二";
System.out.println(str.length); // 找不到符號,變量 length
4)忘記導入類了
在使用第三方類庫的時候,切記要先導入類。
StringUtils.upperCase("abcd");// 找不到符號,類 StringUtils
不過,IDEA 中可以設置類自動導入,來避免這個錯誤。
。。。。。。
導致出現“找不到符號”的錯誤原因千奇百怪,上面也只是列舉出了其中的一小部分。問題的根源在于程序員本身,隨著編程經驗的積累,以及集成開發工具的幫助,這些錯誤很容易在代碼編寫階段被發現。
一般來說,修復“找不到符號”的錯誤很簡單,要么根據 IDE 的提示在編寫代碼的時候直接修復;要么根據運行后輸出的堆棧日志順藤摸瓜。
日志會給出具體的行號,以及錯誤的類型。根據提示,想一下自己的代碼要表達什么意思,然后做出修復的具體動作。比如上圖中提醒我們 35 行代碼出錯了,找不到變量 j,那么就意味著我們需要給變量 j 一個類型聲明即可。
在實際的項目當中,出現“找不到符號”的錯誤原因往往很復雜,但大多數情況下,可以歸結為以下幾點:
編碼格式不對。比如說應該是 UTF-8,但有些遺留的項目會設置為 GBK、GB2312 等等。
JDK 的版本不匹配。比如說某些團隊成員的電腦上安裝的是 JDK 1.6,有的是 JDK 8,版本升級后的一些新語法自然就會和老版本發生沖突。
第三方類庫的升級。一些開源的共同類庫往往會不兼容舊的版本,比如說最新版的 StringUtils 類的包為 org.apache.commons.lang3
,但之前是 org.apache.commons.lang
。
類名和方法名都相同,但包名不同,方法的參數不同,在使用的時候就容易造成“找不到符號”。
在我初學 Java 的時候,老師要求我們用記事本來編寫代碼,然后在命令行中編譯和運行代碼,那時候真的叫一個痛苦啊。
經常出現“找不到符號”的錯誤,差點入門到放棄。因為初學階段,哪能記住那么多編程語言的規則啊,經常忘東忘西,再者記事本是沒有行號的,找起問題來,簡直要了老命。
吃過這樣的苦后,我就強烈建議初學者不要再使用記事本編程了(莫裝逼),直接上 IDE,有啥問題,工具幫你悠著點。
到此,關于“java中找不到符號錯誤怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。