### Question:
UMethodType extends UType { public static UMethodType create(UType returnType, UType... parameterTypes) { return create(returnType, ImmutableList.copyOf(parameterTypes)); }  static UMethodType create(UType returnType, UType... parameterTypes); static UMethodType create(UType returnType, List<UType> parameterTypes); abstract UType getReturnType(); abstract ImmutableList<UType> getParameterTypes(); @Override @Nullable Choice<Unifier> visitMethodType(MethodType methodTy, @Nullable Unifier unifier); @Override MethodType inline(Inliner inliner);  }### Answer:
@Test public void equality() { UType stringTy = UClassType.create("java.lang.String"); new EqualsTester() .addEqualityGroup(UMethodType.create(stringTy, UPrimitiveType.INT)) .addEqualityGroup(UMethodType.create(stringTy, UPrimitiveType.INT, UPrimitiveType.INT)) .addEqualityGroup(UMethodType.create(UPrimitiveType.INT, UPrimitiveType.INT)) .addEqualityGroup(UMethodType.create(stringTy, stringTy)) .addEqualityGroup(UMethodType.create(stringTy)) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UMethodType.create(UClassType.create("java.lang.String"), UPrimitiveType.INT)); }