StringDef

@Retention(value = SOURCE)  @Target(value = ) annotation StringDef


Denotes that the annotated String element, represents a logical type and that its value should be one of the explicitly named constants.

Example:

 @Retention(SOURCE)
 @StringDef({
    POWER_SERVICE,
    WINDOW_SERVICE,
    LAYOUT_INFLATER_SERVICE
 })
 public @interface ServiceName {}
 public static final String POWER_SERVICE = "power";
 public static final String WINDOW_SERVICE = "window";
 public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";
 ...
 public abstract Object getSystemService(@ServiceName String name);

Summary

Public methods

abstract @NonNull boolean

Whether any other values are allowed.

abstract @NonNull String[]

Defines the allowed constants for this element

Public methods

open

@NonNull
public abstract boolean open()

Whether any other values are allowed. Normally this is not the case, but this allows you to specify a set of expected constants, which helps code completion in the IDE and documentation generation and so on, but without flagging compilation warnings if other values are specified.

value

@NonNull
public abstract String[] value()

Defines the allowed constants for this element