RestrictTo
@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(allowedTargets = [AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FIELD, AnnotationTarget.FILE])
public annotation RestrictTo
Denotes that the annotated element should only be accessed from within a specific scope (as defined by Scope).
Example of restricting usage within a library (based on Gradle group ID):
@RestrictTo(GROUP_ID)
public void resetPaddingToInitialValues() { ...
Example of restricting usage to tests:
@RestrictTo(Scope.TESTS)
public abstract int getUserId();
Example of restricting usage to subclasses:
@RestrictTo(Scope.SUBCLASSES)
public void onDrawForeground(Canvas canvas) { ...
Note, this enforcement is done via Android Lint RestrictedApi check. This check is automatically run for Android projects and can be optionally enabled on JVM projects using the com.android.lint Gradle plugin.
