@Test public void testgeneric2() throws SecurityException, NoSuchMethodException { System.out.println("==== testgeneric2 ===="); Type c = new TypeToken<GenericTypeTemplateTest<java.sql.Date>>() {}.getType(); // 得到泛型类的实例类型。 Type context = GenericUtils.resolve(null, c); Method m = GenericUtils.getRawClass(c).getMethod("test1"); // 得到方法 Type methodReturn = GenericUtils.resolve2(c, m.getGenericReturnType()); System.out.println(methodReturn); // 用非泛型的实例无法计算出类型 System.out.println("==== testgeneric2b ===="); methodReturn = GenericUtils.resolve(null, GenericUtils.getRawClass(c)); System.out.println(methodReturn); }
@Test public void testmain() throws SecurityException, NoSuchMethodException { System.out.println("==== testmain ===="); // TypeToken 通过子类继承来描述出一个泛型类的实际类型。 TypeToken<GenericTypeTemplateTest<Timestamp>> c = new TypeToken<GenericTypeTemplateTest<Timestamp>>() {}; // 得到泛型类的实例类型。 Type type1 = GenericUtils.resolve(null, c.getType()); System.out.println(type1); }