关于SCJP-6考试的问题

aba*_*hev 6 java generics scjp

在准备SCJP-6考试时,我遇到了一个棘手的问题.我自己找不到答案.请回答问题并简短评论:

abstract class A<K extends Number> {
   // insert code here
}    
Run Code Online (Sandbox Code Playgroud)
  1. public abstract <K> A<? extends Number> useMe(A<? super K> k);

  2. public abstract <K> A<? super Number> useMe(A<? extends K> k);

  3. public abstract <K> A<K> useMe(A<K> k);

  4. public abstract <V extends K> A<V> useMe(A<V> k);

  5. public abstract <V super K> A<V> useMe(A<V> k);

  6. public abstract <V extends Character> A<? super V> useMe(A<K> k);

  7. public abstract <V super Character> A<? super V> useMe(A<K> k);

可以在上面的占位符中插入哪种方法?

PS我试着看看规范.那些对我没有帮助.

小智 3

答案 1,2,3:泛型类型K影子类类型K。在这些方法中K只是新的泛型类型。编译器尝试通过条件评估<K extends Number>。方法 1,2 通过,方法 3 - 失败。

答案4完全正确。

答案 5,7 有语法错误。

答案6不正确,因为测试<V extends Number>会失败。