类型不匹配,期望util.List [Nothing]从java到scala

时间:2018-06-08 20:51:40

标签: java scala

我正在尝试学习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的一个问题,我不太清楚如何处理这个问题。有什么提示吗?

1 个答案:

答案 0 :(得分:2)

listResult的类型错误。

val listResult = new ListResult()

强制编译器将类型参数推断为Nothing,因为它无法做得更好。你需要例如

val listResult = new ListResult[Role]()

val listResult: ListResult[Role] = new ListResult()