2017-05-10 34 views
-7

我有一個函數返回一個由我定義的類的集合。我正在爲這個班級編寫單元測試過程,但是,我無法圍繞初始化集合或創建一個新頭。
以下是方法:如何在Java中初始化泛型集合?

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

現在,是UT以下如下:

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

在UT,我有這之後更多的東西(的Mockito,斷言語句),但我當我嘗試將myclass的實例添加到集合時出現錯誤。我的代碼不起作用。我知道我將它初始化爲NULL,因爲它有問題。但是,我該如何製作新的收藏品?

+5

'Collection myClassCollection = new ArrayList <>()',或任何適合你的'Collection'實現 –

回答

1

由於Collection是一個接口,可以沒有實例化它,你必須用實現Collection接口的類來初始化。這可能是數組列表,鏈表,HashSet的,等等

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

在文檔(https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)你可以找到收藏的Java實現了「所有已知實現類」部分。