2016-10-17 4 views
1

mainメソッドでList of Objectを作成する必要がありますが、どのように行うのかわかりません。 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

'List '型引数をコンストラクタに渡す必要があります。 – rorschach

答えて

2

、あなたは1を提供する必要があります。ここでは

は私のクラスです。

シンプルで、コンパイルされますが、間違っている:

CashMachine cashMachineObj = new CashMachine(null); 

ベター:

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

上記は単にリストを作成し、CashMashineにそれを渡します。

つまり、リストを作成する方法はたくさんあります。あなたは好きな方法を選択することができます。

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

ここで、account1、account2は、Accountクラスの既存のオブジェクトです。

+0

ありがとうございました。 – meert

1

docs for Listを読むと、Listが実際にインターフェイスであることがわかります!

インターフェイスはプロトコルに似ています。インタフェースのメソッドには実装がありません。インタフェースを実装するクラスは、それらの実装を提供する必要があります。実装されていないメソッドを持つオブジェクトを作成するのは意味がないので、コンストラクタを呼び出すことによって、新しいListオブジェクトを作成することはできません。

Listを実装するクラスのオブジェクトを作成する必要があります。例えば、ArrayListです。

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

あなたは今CashMachineのコンストラクタにaccountsを渡すことができます。

関連する問題