繁体   English   中英

Eclipse声称有未知来源,我也不知道为什么

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM