是否有可能得到类似的东西Class<List<Data>>.class
?我读到你不能打电话.class
,因为它是如何在内部工作的,所以我想知道是否可能使用类似于new ArrayList<Data>().getClass()
可能的东西?那个特别不起作用,因为返回的类是Class<? extends List<Data>>
所以我没有选择,甚至可能吗?
上下文:我正在尝试List<Data>
使用square/moshi解析,但该库似乎在 alpha 上,因此没有关于它的文档。
是否有可能得到类似的东西Class<List<Data>>.class
?我读到你不能打电话.class
,因为它是如何在内部工作的,所以我想知道是否可能使用类似于new ArrayList<Data>().getClass()
可能的东西?那个特别不起作用,因为返回的类是Class<? extends List<Data>>
所以我没有选择,甚至可能吗?
上下文:我正在尝试List<Data>
使用square/moshi解析,但该库似乎在 alpha 上,因此没有关于它的文档。
没有Class
对象表示,List<Data>
因为泛型类型只是编译时特性。Class<List<Data>>
可以通过这样做来制作静态类型的变量
Class<List<Data>> clazz = (Class<List<Data>>) (Object) List.class;
您会在此处收到编译器警告。真的clazz
很公平List.class
,编译器警告暗示你正在做的事情不是一个好主意。
没有Class
对象代表List<Data>
,但有一个Type
对象。
尝试这个:
public class Main {
List<String> list;
public static void main(String[] args) throws Exception {
// prints java.util.List<java.lang.String>
System.out.println(Main.class.getField("list").getGenericType());
}
}