### Question:
DefaultParameterizedType implements ParameterizedType { @Override public int hashCode() { int hashCode = Utils.nullHashCode(ownerType); hashCode = (37 * hashCode) + rawType.hashCode(); hashCode = (37 * hashCode) + Arrays.hashCode(actualTypeArguments); return hashCode; } DefaultParameterizedType(Type ownerType, Class<?> rawType, Type[] actualTypeArguments); Type getOwnerType(); Type getRawType(); Type[] getActualTypeArguments(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static String toString(ParameterizedType type); static String toString(ParameterizedType type, ClassSerializer serializer);  }### Answer:
@Test public void hashCodeTest() { ParameterizedType type1 = new DefaultParameterizedType(Map.class, Map.Entry.class, new Type[] {String.class, Integer.class}); ParameterizedType type2 = new DefaultParameterizedType(Map.class, Map.Entry.class, new Type[] {String.class, Integer.class}); assertEquals(type1.hashCode(), type2.hashCode()); }
@Test public void hashCodeWithNullOwnerType() { ParameterizedType type1 = new DefaultParameterizedType(null, List.class, new Type[] {String.class}); ParameterizedType type2 = new DefaultParameterizedType(null, List.class, new Type[] {String.class}); assertEquals(type1.hashCode(), type2.hashCode()); }
@Test public void hashCodeWithNullActualTypeArguments() { ParameterizedType type1 = new DefaultParameterizedType(null, String.class, null); ParameterizedType type2 = new DefaultParameterizedType(null, String.class, null); assertEquals(type1.hashCode(), type2.hashCode()); }