我正在尝试学习Scala,并且在使用列表时遇到了一些麻烦。我碰到了:
Type mismatch, expected util.List[Nothing], actual ArrayList[Role]
来自我的scala代码的这一部分
val roleList = {
val singleRoleList = new util.ArrayList[Role]
singleRoleList.add(mockRole)
singleRoleList
}
listResult.setItems(roleList)
其中listResult的类在java代码中定义为
public class ListResult<M> {
/**
* Result items.
*/
private List<M> items;
/**
* Constructor.
*/
public ListResult() {
}
/**
* Gets items from list request.
* @return List of items.
*/
public List<M> getItems() {
return items;
}
/**
* Sets items for list request.
* @param items the items to set
*/
public void setItems(final List<M> items) {
this.items = items;
}
}
似乎是java / scala的一个问题,我不太清楚如何处理这个问题。有什么提示吗?
答案 0 :(得分:2)
listResult
的类型错误。
val listResult = new ListResult()
强制编译器将类型参数推断为Nothing
,因为它无法做得更好。你需要例如
val listResult = new ListResult[Role]()
或
val listResult: ListResult[Role] = new ListResult()