@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);
 }