【问题标题】:How to create an object of List from another class in main method?如何在 main 方法中从另一个类创建 List 对象?
【发布时间】:2016-10-17 18:46:59
【问题描述】:

我必须在 main 方法中创建一个 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

    }
}

【问题讨论】:

  • 你需要在构造函数中传递一个List&lt;Account&gt;类型的参数。

标签: java list object methods main-method


【解决方案1】:

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

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

CashMachine cashMachineObj = new CashMachine(null);

更好:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      相关资源
      最近更新 更多