小编Gro*_*xel的帖子

Java泛型.为什么编译?

abstract class Type<K extends Number> {
    abstract <K> void use1(Type<K> k);           // Compiler error (Type parameter K is not within its bounds)
    abstract <K> void use2(Type<? extends K> k); // fine
    abstract <K> void use3(Type<? super K> k);   // fine
}
Run Code Online (Sandbox Code Playgroud)

该方法一般K型阴影类通用型K,所以<K>不匹配<K extends Number>use1().The编译器不知道什么有用的关于新的通用型<K>use2()use3(),但它仍然是合法的编译.为什么<? extends K>(或<? super K>)匹配<K extends Number>

java generics

13
推荐指数
3
解决办法
626
查看次数

标签 统计

generics ×1

java ×1