### Question:
UArrayType extends UType { public static UArrayType create(UType componentType) { return new AutoValue_UArrayType(componentType); }  static UArrayType create(UType componentType); @Override @Nullable Choice<Unifier> visitArrayType(ArrayType arrayType, @Nullable Unifier unifier); @Override ArrayType inline(Inliner inliner);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(UArrayType.create(UPrimitiveType.INT)) .addEqualityGroup(UArrayType.create(UClassType.create("java.lang.String"))) .addEqualityGroup(UArrayType.create(UArrayType.create(UPrimitiveType.INT))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UArrayType.create(UClassType.create("java.lang.String"))); SerializableTester.reserializeAndAssert(UArrayType.create(UPrimitiveType.INT)); SerializableTester.reserializeAndAssert( UArrayType.create(UArrayType.create(UPrimitiveType.INT))); }