### Question:
TypeUtils { public static Type getResolvedSuperclass(Type type) { Utils.checkNotNull(type, "type"); Class<?> rawType = getErasedReferenceType(type); Type supertype = rawType.getGenericSuperclass(); if (supertype == null) { return null; } return resolveTypeVariables(supertype, type); } private  TypeUtils(); static boolean isAssignable(Type supertype, Type type); static boolean isInstance(Type type, Object object); static Type getErasedType(Type type); static Class<?> getErasedReferenceType(Type type); @Deprecated static Class<?> getRawType(Type type); static boolean isArray(Type type); static Type getComponentType(Type type); static Type getArrayType(Type componentType); static boolean isSimpleParameterizedType(Type type, Class<?> rawType); static Type getActualTypeArgument(Type type); static Type getResolvedSuperclass(Type type); static Type[] getResolvedInterfaces(Type type); static String toString(Type type); static String toString(Type type, ClassSerializer serializer); static String toUnqualifiedString(Type type); static String toSimpleString(Type type);  }### Answer:
@Test public void getResolvedSuperclassWithPrimitive() { assertNull(TypeUtils.getResolvedSuperclass(int.class)); }
@Test public void getResolvedSuperclassWithPrimitiveArray() { assertEquals(Object.class, TypeUtils.getResolvedSuperclass(int[].class)); }
@Test public void getResolvedSuperclassWithObject() { assertNull(TypeUtils.getResolvedSuperclass(Object.class)); }
@Test public void getResolvedSuperclassWithClass() { assertEquals(Number.class, TypeUtils.getResolvedSuperclass(Integer.class)); }
@Test public void getResolvedSuperclassWithArrayClass() { assertEquals(Object.class, TypeUtils.getResolvedSuperclass(Integer[].class)); }
@Test public void getResolvedSuperclassWithTypeVariable() { assertNull(TypeUtils.getResolvedSuperclass(Types.typeVariable(declaration, "T"))); }
@Test public void getResolvedSuperclassWithGenericArray() { assertEquals(Object.class, TypeUtils.getResolvedSuperclass(Types.genericArrayType(Integer.class))); }
@Test public void getResolvedSuperclassWithParameterizedType() { assertEquals(valueOf("AbstractList<Integer>"), TypeUtils.getResolvedSuperclass(valueOf("ArrayList<Integer>"))); }
@Test(expected = IllegalArgumentException.class) public void getResolvedSuperclassWithWildcardType() { TypeUtils.getResolvedSuperclass(Types.unboundedWildcardType()); }
@Test(expected = NullPointerException.class) public void getResolvedSuperclassWithNull() { TypeUtils.getResolvedSuperclass(null); }