-1

我只想知道这里的错误是什么,或者我应该从我的代码中添加或退出什么。

我想从扫描仪创建一个 ArrayList,但我不能。如果我创建一个 ArrayList 而不指定它的工作类型。问题是什么?我已经有了一首班级歌曲。

当我打印我的第一次尝试时,数组中充满了“空值”。当我打印第二次尝试时,数组就是我需要的。我怎样才能使我的第一次尝试显示与尝试 2 相同的打印?

谢谢!!

        ArrayList<Song> can = new ArrayList<Song>(); // 1st try
    ArrayList can1 = new ArrayList(); /2nd try

    Song song;
    Scanner scan = null;

    try {
        scan = new Scanner(new FileReader("src/arrayList/Song.dat"));

        while (scan.hasNext()) {
            can.add(Song(scan.next())); // 1st try
            can1.add(scan.next()); // 2nd try
        }    


    } catch (FileNotFoundException e) {
        System.err.println(e);
    } catch (InputMismatchException e) {
        System.err.println(e);
    } catch (java.util.NoSuchElementException e) {
        System.err.println(e);
    }
    finally {
        scan.close();
    }
4

1 回答 1

2

创建列表的两种方法是正确的,但它们之间存在一些差异。请参阅答案底部的链接。

问题是您没有正确实例化Song应该添加到列表中的对象。为此,您必须使用new关键字。例如:

can.add(new Song(scan.next()));

阅读更多关于:

于 2013-09-22T22:38:40.263 回答