如何在 main 方法中从另一个 class 创建一个 List 对象?

How to create an object of List from another class in main method?

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

如何创建 CashMachine 对象 class?

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

这是我的 classes:

    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

    }
}

你写了一个构造函数,它需要一个 List ......太奇怪了,你必须提供一个。

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

CashMachine cashMachineObj = new CashMachine(null);

更好:

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

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

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

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

其中 account1、account2 将是帐户 class 的现有对象。

如果你阅读docs for List,你会发现List实际上是一个接口!

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

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

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

您现在可以将 accounts 传递给 CashMachine 的构造函数。