我必须在main方法中创建一个List of List,但我不知道该怎么做。我想要创建一个Object的类的构造函数有一个List作为参数。
如何创建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
}
}
答案 0 :(得分: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类的现有对象。
答案 1 :(得分:3)
如果您阅读docs for List
,您会看到List
实际上是一个界面!
接口就像协议。接口中的方法没有实现。实现接口的类必须提供这些实现。您不能通过调用其构造函数来创建新的List
对象,因为使用没有实现的方法创建对象没有意义!
您应该做的是创建一个实现List
的类的对象,例如ArrayList
。
ArrayList<Account> accounts = new ArrayList<>();
现在,您可以将accounts
传递给CashMachine
的构造函数。