FFIVE
擦除,字面意思是从编译好的字节码中删除源代码中存在的类型信息。让我们用一些代码来理解这一点。import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class GenericsErasure {
public static void main(String args[]) {
List<String> list = new ArrayList<String>();
list.add("Hello");
Iterator<String> iter = list.iterator();
while(iter.hasNext()) {
String s = iter.next();
System.out.println(s);
}
}}如果您编译了这段代码,然后用Java反编译器反编译它,您将得到类似的结果。注意,反编译代码不包含原始源代码中存在的类型信息的跟踪。import java.io.PrintStream;import java.util.*;public class GenericsErasure{
public GenericsErasure()
{
}
public static void main(String args[])
{
List list = new ArrayList();
list.add("Hello");
String s;
for(Iterator iter = list.iterator(); iter.hasNext(); System.out.println(s))
s = (String)iter.next();
}}