如何在Java中初始化泛型集合?

时间:2017-05-10 02:01:41

标签: 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,Assert语句),但是当我尝试将myclass的实例添加到集合时,我收到错误。我的代码不起作用。我知道我将它初始化为NULL因为它有问题。但是,我如何制作新的系列呢?

2 个答案:

答案 0 :(得分:1)

由于Collection是一个接口,您无法实例化它,您必须使用实现Collection接口的类进行初始化。那可能是ArrayList,LinkedList,HashSet等......

(define f append)
(thing '(a b) '(c d) '(e f))
=> '(a b c d e f)

在文档(https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)中,您可以在&#34;所有已知的实现类和#34;中找到Collection的Java实现。部分。

答案 1 :(得分:0)

您必须将集合初始化为任何类型,以实现Collection接口:

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

例如,一个ArrayList:

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