我有一段代码,它将一个文本文件转换成一个字符串,然后将字符串的一部分分离成arraylist的不同元素。
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<String> smallList = new ArrayList<String>();
while(input.hasNextLine()){
line = input.nextLine;
if(line.equals("<END>")){
smallList.add(listLine);
} else{
listLine = listLine + "\n" + line;
}
}
}
}
但是,当我尝试编译此文件时,它会给我两个错误:
JAVAC Message.javaMessage.java:31:找不到符号符号:变量输入位置:类消息同时(input.hasNextLine()){ ^ Message.java:32:找不到符号符号:变量输入位置:类消息行=input.next线;^
我该如何解决这个问题?我真的不知道怎么了。
我修复了这个问题,现在我的错误是$javac Message.javaMessage.java:34:找不到符号符号:变量nextLine位置:类java.util.扫描仪行=input.next行;^
^
现在又怎么了?
这是因为Scanner对象input
已在构造函数(构造函数的本地范围)中声明,因此它在makeSmallerLists()中不可见。您需要将其声明为实例变量,以便在类的所有方法中都可以访问它。
public class Grocery {
Scanner input; // declared here, as an instance variable
public Grocery(){
File inFile = new File ("lists.txt");
input = new Scanner (inFile); // initialized here
...
}
...
public void makeSmallerLists() {
...
while(input.hasNextLine()) { // accessible everywhere within the class
...
}
}
您有可变范围问题。无法访问范围外的字段。将扫描器声明为全局扫描器,位于构造器外部。
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.
.....
}
Scanner input = new Scanner (inFile);
输入
对于构造函数来说是本地的,您不能在构造函数之外进行访问,并且您正试图在makeSmallList()方法中进行访问。使它作为一个实例成员,以便它可以通过类
而不是静态
上下文。
public class Grocery{
Scanner input;
和在构造函数中
public Grocery(){
File inFile = new File ("lists.txt");
input = new Scanner (inFile);
我有这样的代码:获取一个文本文件,并将其转换为字符串,然后将字符串的部分分离为ArrayList的不同元素。 然而,当我试图编译它时,它给了我两个错误: javac Message.java Message.java:31:找不到符号symbol:变量输入位置:类消息while(input.HasNextLine()){^Message.java:32:找不到符号symbol:变量输入位置:类消息
问题内容: 嘿,我刚开始我的第一本Java编程书籍,所以这应该很容易解决。弄乱我对条件句的新知识,发现标题错误。 这是代码: 当我尝试编译时: 问题答案: 错误消息告诉您变量“输入”在您的作用域中不存在。您可能想使用Scanner对象,但将其命名为“ x”,而不是“ input”。 应该修复它。
问题内容: 当代码到达递归调用增量时,我收到错误找不到符号,我不知道为什么?这是增量代码。任何帮助将不胜感激。 编辑:我真的是Java的新手,所以可以做的答案越基本越好。好的,所以我收到的错误是:BigNatural.java.35:找不到符号符号方法增量()位置:类java.lang.String temp.increment() 并在此处清除所有其他问题,是整个代码。 }公共类BigNatur
嘿,我刚刚开始我的第一本关于Java的编程书,所以这应该是一个简单的修复。把我对条件句的新知识弄得乱七八糟的,结果我得到了标题错误。 代码如下: 当我尝试编译:
问题内容: 美好的一天,我在同一目录中有两个类Map和Field。我成功地编译了Field.java,但是当我编译Map.java时,我得到了: 这是两个类的代码: 对于Field.java(如有必要): 我分别编译了Field.java和Map.java:javac Field.java没有返回任何错误,但是javac Map.java返回了以上错误。 问题答案: 我仍然不清楚您的问题到底在哪里
我一直在尝试使用Eclipse和Forge编译Minecraft mod,但我只是遇到错误,我想这是与链接Minecraft库有关,但不确定这是我的代码 我正在遵循一个指南,应该在最后得到一条“构建成功”的消息。指南是https://blog.usejournal.com/a-beginners-guide-to-modding-Minecraft-9A42536495F6 这里有个错误