java - 如何使用包含带有参数的泛型参数的列表实现方法

标签 java

假设我们有一个界面:

public interface MyInterface<Key>
{
    Key getKey();
}

然后我们有两个类:

 public class ClassWithString implements MyInterface<String>
 {....................}
 public class ClassWithInteger implements MyInterface<Integer>
 {....................}

如何制作这样的东西:

public static Map convert(List<? extends  MyInterfac<K>> list)
{
    .....
}

实际上我需要一个方法

  1. 可以使用列表。
  2. 列表的元素必须使用参数扩展 MyInterface。如何设置该参数?:

    (List<? extends  MyInterfac<K>> list)
    

当然,convert 方法不会运行,我只是想实现类似的东西。

最佳答案

试试这个:

public static <T extends MyInterface<F>,F> Map<F,T> convert (List<T> list){
    return null;
}

编辑: Generic methods使您能够将类型参数传递给方法。在您的情况下,您需要一个扩展MyInterface的类型T,以及接口(interface)本身的通用类型F。使用这两个参数,您甚至可以参数化 map 。 JVM 将尽可能推断类型。如果 JVM 无法推断类型,您可能需要手动转换返回类型。

关于java - 如何使用包含带有参数的泛型参数的列表实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401732/

相关文章:

java - 我不明白这段代码

java - JAVA中的字符分割

java - 消除Java排序比较中的越界错误

java - WebLogic Server::服务器不支持 J2EE Web 模块规范的 3.0 版

java - Java游戏的键盘输入

java 数学结果类型

java - map 正在加载,但在 Android 开发中看不到 map

java - 创建 50 个线程连接到服务器以进行负载测试

Java - 在 Windows 10 上调用 Paint(),但在 OSX 10.10.5 上不调用

java - 禁用断言的编译 Java 中,assert someBoolean(); 之间是否有区别?和 verifySomeBoolean();后者包含断言?