### Question:
UWildcardType extends UType { public static UWildcardType create(BoundKind boundKind, UType bound) { return new AutoValue_UWildcardType(boundKind, bound); }  static UWildcardType create(BoundKind boundKind, UType bound); static UWildcardType create(); @Override Choice<Unifier> visitWildcardType(WildcardType wildcard, Unifier unifier); @Override Type inline(Inliner inliner);  }### Answer:
@Test public void equality() { UType objectType = UClassType.create("java.lang.Object", ImmutableList.<UType>of()); UType setType = UClassType.create("java.util.Set", ImmutableList.<UType>of(objectType)); new EqualsTester() .addEqualityGroup(UWildcardType.create(BoundKind.UNBOUND, objectType)) .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, objectType)) .addEqualityGroup(UWildcardType.create(BoundKind.EXTENDS, setType)) .addEqualityGroup(UWildcardType.create(BoundKind.SUPER, setType)) .testEquals(); }
@Test public void serialization() { UType numberType = UClassType.create("java.lang.Number", ImmutableList.<UType>of()); SerializableTester.reserializeAndAssert(UWildcardType.create(BoundKind.EXTENDS, numberType)); }