[英]Eclipse claims there is unknown source and I don't know why
因此,我必须将此文件读取到一个链表中,但是当我运行代码时,它说每个scanner.next();
来源都不明scanner.next();
关于如何解决它的任何想法?
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;
public class LinkedMain
{
public static <bankacctinfo> void main(String args[]) throws IOException
{
File fil1 = new File("AcctList");
Scanner scanner = new Scanner(fil1).useDelimiter("[,|\n/\r]+");
LinkedList<BankAcctInfo>list=new LinkedList<BankAcctInfo>();
String nameFirst;
String nameLast;
int pin;
double balance;
while(scanner.hasNext())
{
nameFirst = scanner.next();
nameLast = scanner.next();
pin = scanner.nextInt();
balance = scanner.nextDouble();
BankAcctInfo b1 = new BankAcctInfo(nameFirst, nameLast, pin, balance);
list.add(b1);
}
scanner.close();
}
根据该线程,您的堆栈跟踪报告了未知的源错误,因为您使用的是JRE,而不是JDK。 您应该确保已从Oracle网站安装了最新版本的JDK,并将Eclipse设置为可以使用它。 这将为您提供更多有用的堆栈跟踪。
话虽如此,您的错误可能与同时使用next()
和nextInt()
方法的Scanner
有关。 过去,我遇到了麻烦,因为它奇怪地处理了换行符,如本线程中所述 。 本质上, nextInt()
不会占用换行符。
我要做的一项建议是,只使用next()
,然后使用Integer.valueOf(x)
解析应该是整数的行。
所以:
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;
public class LinkedMain
{
public static <bankacctinfo> void main(String args[]) throws IOException
{
File fil1 = new File("AcctList");
Scanner scanner = new Scanner(fil1).useDelimiter("[,|\n/\r]+");
LinkedList<BankAcctInfo>list=new LinkedList<BankAcctInfo>();
String nameFirst;
String nameLast;
int pin;
double balance;
while(scanner.hasNext())
{
nameFirst = scanner.next();
nameLast = scanner.next();
pin = Integer.valueOf(scanner.next());
balance = Double.valueOf(scanner.nextDouble());
BankAcctInfo b1 = new BankAcctInfo(nameFirst, nameLast, pin, balance);
list.add(b1);
}
scanner.close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.