2017-05-10 15 views
-7

私は、私が定義したクラスのCollectionを返す関数を持っています。私はこのクラスの単体テストを書く過程にありますが、コレクションを初期化したり、新しいものを作成したりすることはできません。
後 がメソッドです:UTでジェネリックコレクションをJavaでどのように初期化できますか?

public void testGetHistory() { 
    String id = "Sample-Id"; 
    MyClass myclass1 = getMyClass(); 
    StackInfo myclass2 = getMyClass(); 
    Collection<MyClass> myClassCollection = null; 
    myClassCollection.add(myclass1); 
    myClassCollection.add(myclass2); 
    } 

、私は(ステートメントをアサート、Mockito)この後のより多くのものを持っていますが、I:次のように

public Collection<MyClass> getHistory(String id) { 
    return infoRepository.findId(id); 
} 

さて、次のためのUTは、 myclassのインスタンスをコレクションに追加しようとするとエラーが発生します。私のコードは動作しません。私はそれが問題があるためにNULLに初期化していることを理解しています。しかし、どうすれば新しいコレクションを作ることができますか?

例えば

https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html

、ArrayListを::

+5

'Collection myClassCollection = new ArrayList <>()'、またはあなたに適した 'Collection'実装 –

答えて

0

あなたがCollectionインタフェースを実装する任意のタイプのコレクションを、初期化する必要があり

Collection<MyClass> myClassCollection = new ArrayList<>(); 
1

コレクションインタフェースがあるので、あなたができますインスタンス化しない場合は、Collectionインタフェースを実装するクラスで初期化する必要があります。それは...ドキュメント(https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)あなたは「既知の実装クラス」セクションでコレクションのJava実装を見つけることができるで

Collection<MyClass> myClassCollection = new ArrayList<MyClass>(); 
Collection<MyClass> myClassCollection = new LinkedList<MyClass>(); 
Collection<MyClass> myClassCollection = new HashSet<MyClass>(); 

などのArrayList、LinkedListは、HashSetの、ある可能性があります。

関連する問題