### Question:
UNewClass extends UExpression implements NewClassTree { public static UNewClass create( UExpression enclosingExpression, List<? extends UExpression> typeArguments, UExpression identifier, List<UExpression> arguments, @Nullable UClassDecl classBody) { return new AutoValue_UNewClass( enclosingExpression, ImmutableList.copyOf(typeArguments), identifier, ImmutableList.copyOf(arguments), classBody); }  static UNewClass create(
      UExpression enclosingExpression,
      List<? extends UExpression> typeArguments,
      UExpression identifier,
      List<UExpression> arguments,
      @Nullable UClassDecl classBody); static UNewClass create(
      List<? extends UExpression> typeArguments, UExpression identifier, UExpression... arguments); static UNewClass create(UExpression identifier, UExpression... arguments); @Override @Nullable abstract UExpression getEnclosingExpression(); @Override abstract ImmutableList<UExpression> getTypeArguments(); @Override abstract UExpression getIdentifier(); @Override abstract ImmutableList<UExpression> getArguments(); @Override @Nullable abstract UClassDecl getClassBody(); @Override @Nullable Choice<Unifier> visitNewClass(NewClassTree newClass, @Nullable Unifier unifier); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override JCNewClass inline(Inliner inliner);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup( UNewClass.create(UClassIdent.create("java.lang.String"), ULiteral.stringLit("123"))) .addEqualityGroup( UNewClass.create(UClassIdent.create("java.math.BigInteger"), ULiteral.stringLit("123"))) .addEqualityGroup( UNewClass.create(UClassIdent.create("java.lang.String"), ULiteral.stringLit("foobar"))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UNewClass.create(UClassIdent.create("java.lang.String"), ULiteral.stringLit("123"))); }