1 package org.pojomatic.annotations;
2
3 import static java.lang.annotation.ElementType.FIELD;
4 import static java.lang.annotation.ElementType.METHOD;
5
6 import java.lang.annotation.Documented;
7 import java.lang.annotation.Retention;
8 import java.lang.annotation.RetentionPolicy;
9 import java.lang.annotation.Target;
10
11 /**
12 * If the annotated property is of type {@code Object}, then Pojomatic should not consider the possibility that it could
13 * be an array. In particular, if a pair of values are both arrays, they will only be considered equal if they are the
14 * same instance. This is primarily intended as a performance improvement in cases where a field of type Object is not
15 * expected to contain array values, as it can avoid calls to
16 * {@link Object#getClass()}.{@link Class#isArray() isArray()}
17 * <p>
18 * If the annotated property is not of type {@code Object}, this annotation has no effect.
19 *
20 * @since 2.0
21 */
22 @Target({FIELD, METHOD})
23 @Retention(RetentionPolicy.RUNTIME)
24 @Documented
25 public @interface SkipArrayCheck {
26
27 }