Test test = new Test(){}; {}中没有任何内容,为什么结果不同。因为当你写这java泛型和反射,为什么不同的结果
Test test = new Test() {};
你指示编译器为您创建一个新的匿名类型
public class Test<T> {
private final TypeToken<T> typeToken = new TypeToken<T>(getClass()) {};
private final Type type = typeToken.getType();
public void foo() {
System.out.println(this.type);
}
public static void main(String[] args) {
Test<Integer> test = new Test<Integer>() {};
Test<Integer> test2 = new Test<Integer>();
test.foo();// class java.lang.Integer
test2.foo();//T
}
}
什么结果?它有什么不同?请注意,在一种情况下,您正在创建'Test'的实例,另一种情况下您正在创建'Test'的匿名子类的实例。 –