@Test public void testgeneric4() throws SecurityException, NoSuchMethodException { System.out.println("==== testgeneric4 ===="); Type type = GenericUtils.newArrayType(String.class); System.out.println(type.getClass().getName()); System.out.println("isRawArray:" + GenericUtils.isRawArray(type)); System.out.println("rawType:" + GenericUtils.getRawClass(type)); Class<?> c = new String[0].getClass(); System.out.println(c.getClass().getName()); System.out.println(c.getName()); System.out.println(c); System.out.println(type.equals(c)); System.out.println("==== testgeneric4b ===="); FieldEx field = BeanUtils.getField(GenericTypeTemplateTest.class, "field1"); System.out.println(field.getType().equals(c)); System.out.println(field.getGenericType().equals(c)); // 当不是泛型时,返回的是class对象 System.out.println(field.getType()); System.out.println(field.getGenericType()); System.out.println(type); System.out.println(field.getGenericType().equals(type)); System.out.println("==== testgeneric4c ===="); field = BeanUtils.getField(GenericTypeTemplateTest.class, "field2"); System.out.println(field.getType()); System.out.println(field.getGenericType()); type = field.getGenericType(); System.out.println("isRawArray:" + GenericUtils.isRawArray(type)); System.out.println("rawType:" + GenericUtils.getRawClass(type)); System.out.println(GenericUtils.getRawClass(type).equals(field.getType())); }