java 当存在时,为什么不编译此重写< T>?

jljoyd4f  于 2023-01-01  发布在  Java
关注(0)|答案(1)|浏览(107)

这个重写不能编译,但是当类型参数T从重写方法中移除后,它就能很好地编译。为什么?

class Base {

    public <T> Collection<String> transform(Collection<String> list) {
        return null;
    }
}

class Derived extends Base {
    @Override
    public <T> Collection<String> transform(Collection list) {
        return null;
    }

}
gfttwv5a

gfttwv5a1#

您忘记了方法参数中的Collection。
可能编译的版本:

class Base {

        public <T> Collection<String> transform(Collection<String> list) {
            return null;
        }
    }

    class Derived extends Base {
        @Override
        // Here
        public <T> Collection<String> transform(Collection<String> list) {
            return null;
        }
    }

相关问题