这可能与这里的另一个问题重复,但我已经搜索过但找不到我想要的问题。如果有类似的问题,请指出我。
是否可以返回泛型的泛型?这就是我的意思:
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){
//...
}
这使得 T
和 GenericT
的实例以 K
作为类型参数。
关于Java 泛型 : Return a Type of another Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790098/