编译Java时发生错误:找不到符号。
编译Java时发生错误:找不到符号。
这个问题已经有答案了:
我有这段代码,它将一个文本文件转换为一个字符串,然后将字符串的不同部分分离成列表的不同元素。
import java.util.Scanner; import java.io.*; import java.util.ArrayList; public class Grocery{ public Grocery(){ File inFile = new File ("lists.txt"); Scanner input = new Scanner (inFile); String grocery; { grocery = input.nextLine(); } } public void makeSmallerLists(){ String listLine; String line; ArrayList smallList = new ArrayList(); while(input.hasNextLine()){ line = input.nextLine; if(line.equals("")){ smallList.add(listLine); } else{ listLine = listLine + "\n" + line; } } } }
然而,当我尝试编译时,它给了我两个错误:
javac Message.java Message.java:31: cannot find symbol symbol :
variable input location: class Message while(input.hasNextLine()){
^ Message.java:32: cannot find symbol symbol : variable input location: class Message line = input.nextLine;
^
我该怎么办?我真的不知道哪里出了问题。
我修复了那个问题,现在我的错误信息是
$ javac Message.java
Message.java:34: cannot find symbol
symbol : variable nextLine
location: class java.util.Scanner
line = input.nextLine;
^
^
现在出了什么问题?
admin 更改状态以发布 2023年5月21日
你遇到了变量作用域的问题。你不能在作用域外访问字段。将 Scanner 声明为全局变量,放在构造函数之外。
public class Grocery{ Scanner input = null;// Declare Scanner here. public Grocery(){ ..... input=new Scanner (inFile); }
同时添加方法括号 ()
。
public void makeSmallerLists(){ ...... while(input.hasNextLine()){ line = input.nextLine();// Append () after method. ..... }