Java中的协方差

Bla*_*de3 1 java covariance

为什么以下不适用于Java?它适用于C#:

public static final List<String> Split(String str, char delimiter)
    {
        if ((str == null) || "".equals(str))
        {
            return new CopyOnWriteArrayList<String>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说这个方法必须返回List.CopyOnWriteArrayList实现List接口.为什么协方差不适用于Java中的返回值?

Ste*_*hen 10

看起来你已经忘记了List<String>else分支返回一个.