繁体   English   中英

Java泛型:返回另一个类型的类型

[英]Java Generics: Return a Type of another Type

这可能与此处的另一个问题重复,但我已经搜索了但无法得到我想要的问题。 请给我指出类似的问题。

是否可以返回泛型的泛型? 这就是我的意思:

public <T,K> T<K> myMethod(Class<T> classT, Class<K> classK) {
   //...method implementation
}

因此,如果我使用List调用此方法,并且Integer应该按以下方式工作:

List<Integer> listOfIntegers = myMethod(List.class, Integer.class);

您不能将类型参数用作通用类型。 您正在寻找的是为T类型设置界限。

假设T用于如下类型:

class GenericT<T> {}

您可以这样声明您的方法:

public <K, T extends GenericT<K>> T myMethod(Class<T> classT, Class<K> classK){
    //...
}

这使得TGenericT实例具有K作为类型参数。

不,那是行不通的。 为了编写T<K>T必须是更高种类的类型构造函数,但Java中不可用。 仍然存在尝试这样做的尝试,但它们似乎更像是纯粹的理论练习。 另请参见此问题的答案以进行进一步讨论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM