将数组转换为列表时编译错误?

jsc*_*man 0 java arrays collections type-conversion

我试图将原因数组转换ArrayList为原因并且我得到此编译器错误:

Type mismatch: cannot convert from ArrayList<Cause> to Cause[]
Run Code Online (Sandbox Code Playgroud)

这是实施:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MyException extends Exception

    private List<Cause> causes;

    public MyException(Cause... causes) {
        causes = new ArrayList<Cause>(Arrays.asList(causes));
    }

}
Run Code Online (Sandbox Code Playgroud)

如何将我作为参数接收的原因转换为List成员?(我不想更改参数的类型).你有什么主意吗?

fab*_*ian 7

构造函数中赋值的左侧是参数,而不是字段.(也有一个{缺失).你可以通过添加this.:

public class MyException extends Exception {

    private List<Cause> causes;

    public MyException(Cause... causes) {
        this.causes = new ArrayList<Cause>(Arrays.asList(causes));
    }

}
Run Code Online (Sandbox Code Playgroud)