繁体   English   中英

Java中泛型的工作

[英]Working of generics in Java

我正在尝试查看泛型的工作原理,它说将类编译为普通类,并且在任何地方都没有提及类型,并且有checkcast运算符将其传递给我们从ArrayList获得的Object类进行转换的类型。

String i=ArrayListObject.get(position);

但是,当没有类型时,编译器怎么知道通用的ArrayList只能存储在<>中声明的类型。 编译类时,此信息存储在哪里。 请更新

这只是事实的一半。

是的,在运行时 ,不使用任何类型信息。 只是“对象”移动。 这就是所谓的类型擦除

但是:使用某些通用T定义了哪些字段,方法,...的信息可以很好地编译到类文件中。 使编译器可以读取该类文件; 并且可以理解您要实例化一些ArrayList<String>

换句话说:您在这里谈论的是两种不同的情况:A)编译器读取类文件以便能够完成其工作; B)JVM读取类文件以运行代码。

所以,当你真的很好奇,究竟在何处的信息被存储,看这里

暂无
暂无

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

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