Eclipse声称存在未知来源,我不知道为什么

时间:2015-02-12 02:20:44

标签: java eclipse

因此,我必须将此文件读入链接列表,但是当我运行代码时,它会显示每个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();

    }

1 个答案:

答案 0 :(得分:0)

根据this thread,您的堆栈跟踪报告了一个未知的源错误,因为您使用的是JRE而不是JDK。您应确保已从Oracle的网站安装了最新版本的JDK,并将Eclipse设置为使用它。这将为您提供更多信息性的堆栈跟踪。

话虽如此,您的错误可能与使用Scanner同时使用next()nextInt()方法有关。我过去遇到了麻烦,因为它奇怪地处理换行符,详见this thread。基本上,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();

    }

}