假设我们有一个界面:
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)
{
.....
}
实际上我需要一个方法
- 可以使用列表。
列表的元素必须使用参数扩展 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/