### Question:
DefaultTypeVariable implements TypeVariable<D> { @Override public int hashCode() { int hashCode = declaration.hashCode(); hashCode = (hashCode * 37) + name.hashCode(); hashCode = (hashCode * 37) + Arrays.hashCode(bounds); return hashCode; } DefaultTypeVariable(D declaration, String name, Type[] bounds); D getGenericDeclaration(); String getName(); Type[] getBounds(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static String toString(TypeVariable<?> type); static String toString(TypeVariable<?> type, ClassSerializer serializer);  }### Answer:
@Test public void hashCodeTest() { TypeVariable<Constructor<?>> typeVariable1 = new DefaultTypeVariable<Constructor<?>>(constructor, "T", new Type[] {Number.class, Comparable.class}); TypeVariable<Constructor<?>> typeVariable2 = new DefaultTypeVariable<Constructor<?>>(constructor, "T", new Type[] {Number.class, Comparable.class}); assertEquals(typeVariable1.hashCode(), typeVariable2.hashCode()); }