参数化参数化方法的返回类型

时间:2012-11-12 01:49:09

标签: java generics type-conversion parameterized

我一直试图让这样的事情发挥作用:

private static <V, K> V<KnownType> from(K oldObject, Class<? extends V<KnownType>> newClass) {
    ...
}

但是,此方法签名会出现编译器错误:

  

V型不是通用的;它不能使用参数<KnownType>

进行参数化

基本上,我想要一种将K转换为V<KnownType>的方法。这可能吗?

此外,如果有人为此编写代码,还有一些额外的上下文 - 所有V都有一个单一参数构造函数,它接受K

提前致谢。

编辑 - 输入类是V的子类。(? extends V...

2 个答案:

答案 0 :(得分:3)

假设:

public interface SomeType<E>

试试这个:

private static <V extends SomeType<KnownType>, K> V from(K oldObject, Class<V> newClass) {

答案 1 :(得分:0)

Java中的类型参数只能对应类型。你希望V成为一种类型的东西,一种对类型进行操作的更高级的“种类”。 Java中的泛型不适用于更高类型。