java - 如何指定包含泛型的类变量

标签 java generics

这是一个可以解释我的问题的示例:

public class Scratch {
    public <T> Set<T> method(Class<T> clazz){return null;}

    public static void main(String[] args){
        Scratch s=new Scratch();
        Set<List<String>> list=s.method(List.class); //Gives error here.  How do I say List<String>.class?
    }
}

我很想说List<String>.class对于上面的 clazz 变量,但这不是合适的语法。我只是以错误的方式使用泛型吗?

最佳答案

这是语言和标准库的限制。

解决方法是简单地进行强制转换

(Class<List<String>>)(Class)List.class

关于java - 如何指定包含泛型的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263082/

相关文章:

c# - 是否可以使用 JSON.Net 将 JSON 反序列化为 List<MyObject<T,K>>

Java 泛型 : wildcard extends class and include that class

java - 有时 java.util.Date 之前会失败

Java 泛型运算符

c# - 在方法中途添加泛型类型约束

java - 过度依赖一个 arrayList

c# - 传递 List<MyType> 时,使用 Param List<T> 的 WCF 调用失败

java - 强制开发人员为其添加的所有 UI 元素设置可访问性

java - 如何对通过@JsonCreator 组成的枚举进行单元测试?

java - 有没有办法获得最高分的物体