java - 关于SCJP-6考试的问题

标签 java generics scjp

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

abstract class A<K extends Number> {
   // insert code here
}    
  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);

上面的占位符可以插入哪个方法?

附言 我试图查看规范。那些对我没有帮助。

最佳答案

答案 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/

相关文章:

java - XAMPP Tomcat/启动 Tomcat 时出错

java - Hibernate有没有类似于Nhibernate "Mapping by code"的东西

java - Gradle:以编程方式指定compileJava任务的编译器选项

c# - 如何在 C# 中的类型安全集合中存储具有受限泛型类型的 Action 委托(delegate)?

java - 这段代码如何执行?

java - Kotlin-无法推断泛型

C# Generic List of Multiple Types 泛型列表

java - 与 String 和实例混淆

java - Java中的契约是什么

java - 这段代码怎么会导致死锁呢?