由于所有
List<something>类实际上在运行时都对应于同一类,因此可以这样做:
Class<List<TaskLocalConstraints>> c = (Class<List<TaskLocalConstraints>>) List.class;
但是由于某种原因,Java不喜欢它。用String尝试过:
Laj.java:9: inconvertible typesfound : java.lang.Class<java.util.List>required: java.lang.Class<java.util.List<java.lang.String>>Class<List<String>> c = (Class<List<String>>) List.class;
好吧,那我们就傻了吧:
Class<List<String>> c = (Class<List<String>>) (Class<?>) List.class;
这很愚蠢,但是有效。它会产生“未经检查”的警告,但是您的示例也是如此。请注意,尽管如此,它不会产生与您的示例相同的类。您的示例返回了对象的实际类,即
ArrayList。这
List显然是返回的。



