テストテスト=新しいテスト(){}; {}には何もありません。なぜ結果が異なるのですか。Javaジェネリックと反射、なぜ異なる結果
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'の無名サブクラスのインスタンスを作成していることに注意してください。 –