UsesReflectionToAccessField


@Retention(value = AnnotationRetention.BINARY)
@Repeatable
@Target(allowedTargets = [AnnotationTarget.CLASS, AnnotationTarget.FIELD, AnnotationTarget.FUNCTION, AnnotationTarget.CONSTRUCTOR])
public annotation UsesReflectionToAccessField


The annotated code uses reflection to indirectly access a field of the specified class/interface, or its subclasses / interface implementers.

This annotation indicates to optimizers or shrinkers that the target field should be preserved if the annotated code is reachable in the final application build.

Summary

Public constructors

UsesReflectionToAccessField(
    @NonNull KClass<@NonNull ?> classConstant,
    @NonNull String className,
    @NonNull String fieldName,
    @NonNull KClass<@NonNull ?> fieldType,
    @NonNull String fieldTypeName
)

Public methods

final @NonNull KClass<@NonNull ?>

Class containing the field accessed by reflection.

final @NonNull String

Class name (or class name pattern) containing the field accessed by reflection.

final @NonNull String

Name (or name pattern) of field accessed by reflection.

final @NonNull KClass<@NonNull ?>

Type of field accessed by reflection.

final @NonNull String

Type (or type pattern) of field accessed by reflection.

Public constructors

UsesReflectionToAccessField

Added in 1.0.0-alpha01
public UsesReflectionToAccessField(
    @NonNull KClass<@NonNull ?> classConstant,
    @NonNull String className,
    @NonNull String fieldName,
    @NonNull KClass<@NonNull ?> fieldType,
    @NonNull String fieldTypeName
)

Public methods

getClassConstant

public final @NonNull KClass<@NonNull ?> getClassConstant()

Class containing the field accessed by reflection.

Mutually exclusive with className.

getClassName

public final @NonNull String getClassName()

Class name (or class name pattern) containing the field accessed by reflection.

Mutually exclusive with classConstant.

getFieldName

public final @NonNull String getFieldName()

Name (or name pattern) of field accessed by reflection.

getFieldType

public final @NonNull KClass<@NonNull ?> getFieldType()

Type of field accessed by reflection.

Ignored if not specified.

Mutually exclusive with fieldTypeName.

getFieldTypeName

public final @NonNull String getFieldTypeName()

Type (or type pattern) of field accessed by reflection.

Ignored if not specified.

Mutually exclusive with fieldType.