在Arrays.asList()调用中丢失通用类型信息

时间:2018-11-30 19:29:00

标签: java generics

在单元测试中,我有这样的代码:

@Mock
private AbstractCacheImpl<?>    cache;

@Before
public void setup() {
    xxxx.setCacheImplementations(Arrays.asList(cache)); // error
}

在“错误”行上,Eclipse(和命令行javac)说:

The method setCacheImplementations(List<AbstractCacheImpl<?>>) in the type xxxx is 
 not applicable for the arguments (List<Object>)

这是方法定义:

void setCacheImplementations(List<AbstractCacheImpl<?>> cacheImplementations) { this.cacheImplementations = cacheImplementations; }

我也看到了类似的问题,并且尝试了这些解决方案的变体,但是还没有找到解决方案。

我尝试使用“ Arrays.<stuff>asList(...)”的变体,但这些变体甚至没有任何作用。

我甚至尝试将“ asList()”的整个返回值转换为预期的返回类型,但这也不起作用。它只是说我不能将返回值转换为该类型。

0 个答案:

没有答案