2

我必须在主要方法中创建一个列表对象,但我不知道该怎么做。我想创建一个对象的类的构造函数有一个列表作为参数。

如何创建 CashMachine 类的对象?

顺便说一句,我不会写所有的类,因为它很长。

这是我的课程:

    public class CashMachine {
        private State state;
        List<Account> accountList;
        private CashCard cashCard;
        private Account selectedAccount;

        public CashMachine(List<Account> accountList){
            this.accountList = accountList;
        }
    }

public class TestMain {
    public static void main(String[] args) throws Exception {
        CashMachine cashMachineObj = new CashMachine(); //it is false

    }
}
4

2 回答 2

3

你写了一个构造函数,它想要一个 List ......太令人惊讶了,你必须提供一个。

很简单,会编译,但是是错误的:

CashMachine cashMachineObj = new CashMachine(null);

更好的:

CashMachine cashMachineObj = new CashMachine(new ArrayList<>());

以上只是创建了一个列表并将其传递给 CashMashine。

换句话说:有很多方法可以创建列表;你可以选择任何你喜欢的方法。甚至像:

CashMachine cashMachineObj = new CashMachine(Arrays.asList(account1, account2));

其中 account1, account2 将是 Account 类的现有对象。

于 2016-10-17T18:50:05.053 回答
3

如果您阅读 的文档List,您会发现它List实际上是一个接口!

接口就像协议。接口中的方法没有实现。实现接口的类必须提供这些实现。你不能只List通过调用它的构造函数来创建一个新对象,因为用没有实现的方法创建一个对象是没有意义的!

您应该做的是创建一个实现的类的对象List,例如ArrayList.

 ArrayList<Account> accounts = new ArrayList<>();

您现在可以传递accountsCashMachine.

于 2016-10-17T18:57:12.100 回答