在Scala中键入匹配未参数化的Java列表

时间:2012-11-15 04:12:32

标签: scala generics

我正在尝试在Scala的测试中设置模拟期望。模拟在Hibernate Query对象上。它有方法:

List list() throws HibernateException;

列表未参数化。

当我试图模仿这个时,我无法使这些类型正确。 E.g。

when(query.list).thenReturn(new ArrayList)
when(query.list).thenReturn(new ArrayList[Any])
// and other variations

报告:

overloaded method value thenReturn with alternatives: 
(java.util.List[?0],<repeated...>[java.util.List[?0]])org.mockito.stubbing.OngoingStubbing[java.util.List[?0]] <and> 
(java.util.List[?0])org.mockito.stubbing.OngoingStubbing[java.util.List[?0]] 
cannot be applied to (java.util.ArrayList[java.lang.Object])

我的Scala模拟期望应该是什么样的?

1 个答案:

答案 0 :(得分:2)

您可以使用asInstanceOf强制转换并撰写:

when(query.list.asInstanceOf[ArrayList[Any]]).thenReturn(new ArrayList[Any])