SafeVarargs in Java

java.lang.SafeVarargs

A programmer assertion that the body of the annotated method or constructor does not perform potentially unsafe operations on its var args parameter.

Applying this annotation to a method or constructor suppresses unchecked warnings about a non-reifiable variable arity (vararg) type and suppresses unchecked warnings about parameterized array creation at call sites.

In addition to the usage restrictions imposed by its @Target meta-annotation, compilers are required to implement additional usage restrictions on this annotation type; it is a compile-time error if a method or constructor declaration is annotated with a @SafeVarargs annotation, and either:

1. The declaration is a fixed arity method or constructor.

2. The declaration is a variable arity method that is neither static nor final nor private.

Declaration

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.CONSTRUCTOR, ElementType.METHOD })
public @interface SafeVarargs {
}


No comments:

Post a Comment