RestrictTo


@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(allowedTargets = [AnnotationTarget.ANNOTATION_CLASSAnnotationTarget.CLASSAnnotationTarget.FUNCTIONAnnotationTarget.PROPERTY_GETTERAnnotationTarget.PROPERTY_SETTERAnnotationTarget.CONSTRUCTORAnnotationTarget.FIELDAnnotationTarget.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.

Summary

Nested types

public enum RestrictTo.Scope extends Enum

Public constructors

Public methods

final @NonNull RestrictTo.Scope[]

The scope(s) to which usage should be restricted.

Public constructors

RestrictTo

Added in 1.10.0
public RestrictTo(@NonNull RestrictTo.Scope... value)

Public methods

getValue

public final @NonNull RestrictTo.Scope[] getValue()

The scope(s) to which usage should be restricted.