有如下的泛型类:
public class Pair
{
public Pair() { first = null; second = null; }
public Pair(T first, T second) { this.first = first; this.second = second; }
public T getFirst() { return first; }
public T getSecond() { return second; }
public void setFirst(T newValue) { first = newValue; }
public void setSecond(T newValue) { second = newValue; }
private T first;
private T second;
}
用javac编译后再用javap 查看代码,如下:
Compiled from "Pair.java"
public class Pair {
public Pair();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: aload_0
5: aconst_null
6: putfield #2 // Field first:Ljava/lang/Object;
9: aload_0
10: aconst_null
11: putfield #3 // Field second:Ljava/lang/Object;
14: return
public Pair(T, T);
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."":()V
4: aload_0
5: aload_1
6: putfield #2 // Field first:Ljava/lang/Object;
9: aload_0
10: aload_2
11: putfield #3 // Field second:Ljava/lang/Object;
14: return
public T getFirst();
Code:
0: aload_0
1: getfield #2 // Field first:Ljava/lang/Object;
4: areturn
public T getSecond();
Code:
0: aload_0
1: getfield #3 // Field second:Ljava/lang/Object;
4: areturn
public void setFirst(T);
Code:
0: aload_0
1: aload_1
2: putfield #2 // Field first:Ljava/lang/Object;
5: return
public void setSecond(T);
Code:
0: aload_0
1: aload_1
2: putfield #3 // Field second:Ljava/lang/Object;
5: return
}
说好的类型擦除呢?怎么才能看到类型擦除后的代码?