在准备 SCJP-6 考试时,我遇到了一个难题。我自己找不到答案。请回答问题并给出简短的评论:
abstract class A<K extends Number> {
// insert code here
}
public abstract <K> A<? extends Number> useMe(A<? super K> k);
public abstract <K> A<? super Number> useMe(A<? extends K> k);
public abstract <K> A<K> useMe(A<K> k);
public abstract <V extends K> A<V> useMe(A<V> k);
public abstract <V super K> A<V> useMe(A<V> k);
public abstract <V extends Character> A<? super V> useMe(A<K> k);
public abstract <V super Character> A<? super V> useMe(A<K> k);
上面的占位符可以插入哪个方法?
附言 我试图查看规范。那些对我没有帮助。
最佳答案
答案 1、2、3:泛型类型 K
阴影类类型 K
.在那些方法中 K
只是新的通用类型。编译器尝试通过条件评估 <K extends Number>
.方法 1,2 通过,方法 3 - 失败。
答案 4 完全正确。
答案 5,7 有语法错误。
答案 6 不正确,因为测试 <V extends Number>
会失败。
关于java - 关于SCJP-6考试的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2914114/