### Question:
UClassType extends UType { public static UClassType create(CharSequence fullyQualifiedClass, List<UType> typeArguments) { return new AutoValue_UClassType( StringName.of(fullyQualifiedClass), ImmutableList.copyOf(typeArguments)); }  static UClassType create(CharSequence fullyQualifiedClass, List<UType> typeArguments); static UClassType create(String fullyQualifiedClass, UType... typeArguments); @Override Choice<Unifier> visitClassType(ClassType classType, Unifier unifier); @Override ClassType inline(Inliner inliner);  }### Answer:
@Test public void equality() { UType stringType = UClassType.create("java.lang.String"); new EqualsTester() .addEqualityGroup(stringType) .addEqualityGroup(UClassType.create("java.util.List", stringType)) .addEqualityGroup(UClassType.create("java.util.Map", stringType, stringType)) .addEqualityGroup(UClassType.create("java.lang.Integer")) .addEqualityGroup( UClassType.create("java.util.List", UClassType.create("java.lang.Integer"))) .testEquals(); }
@Test public void serialization() { UClassType stringType = UClassType.create("java.lang.String"); UClassType integerType = UClassType.create("java.lang.Integer"); SerializableTester.reserializeAndAssert(stringType); SerializableTester.reserializeAndAssert(integerType); SerializableTester.reserializeAndAssert(UClassType.create("java.util.List", stringType)); SerializableTester.reserializeAndAssert(UClassType.create("java.util.List", integerType)); SerializableTester.reserializeAndAssert( UClassType.create("java.util.Map", stringType, stringType)); }
@Test public void unifies() { assertThat( UClassType.create("java.lang.String") .unify(Symtab.instance(context).stringType, unifier)) .isNotNull(); }