### Question:
UAnnotation extends UExpression implements AnnotationTree { public static UAnnotation create(UTree<?> annotationType, List<UExpression> arguments) { return new AutoValue_UAnnotation(annotationType, ImmutableList.copyOf(arguments)); }  static UAnnotation create(UTree<?> annotationType, List<UExpression> arguments); static UAnnotation create(UTree<?> annotationType, UExpression... arguments); @Override abstract UTree<?> getAnnotationType(); @Override abstract ImmutableList<UExpression> getArguments(); @Override @Nullable Choice<Unifier> visitAnnotation(AnnotationTree annotation, Unifier unifier); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override JCAnnotation inline(Inliner inliner);  }### Answer:
@Test public void equality() { new EqualsTester() .addEqualityGroup(UAnnotation.create(UClassIdent.create("java.lang.Override"))) .addEqualityGroup(UAnnotation.create(UClassIdent.create("java.lang.Deprecated"))) .addEqualityGroup( UAnnotation.create( UClassIdent.create("java.lang.SuppressWarnings"), ULiteral.stringLit("cast"))) .testEquals(); }
@Test public void serialization() { SerializableTester.reserializeAndAssert( UAnnotation.create( UClassIdent.create("java.lang.SuppressWarnings"), ULiteral.stringLit("cast"))); }