Android
Anotaciones Typedef: @IntDef, @StringDef
Buscar..
Observaciones
El paquete de anotaciones incluye una serie de anotaciones de metadatos útiles con las que puede decorar su propio código para ayudar a detectar errores.
Solo agrega la dependencia en el archivo build.gradle
.
dependencies {
compile 'com.android.support:support-annotations:25.3.1'
}
Anotaciones IntDef
Esta anotación garantiza que solo se utilicen las constantes enteras válidas que espera.
El siguiente ejemplo ilustra los pasos para crear una anotación:
import android.support.annotation.IntDef;
public abstract class Car {
//Define the list of accepted constants
@IntDef({MICROCAR, CONVERTIBLE, SUPERCAR, MINIVAN, SUV})
//Tell the compiler not to store annotation data in the .class file
@Retention(RetentionPolicy.SOURCE)
//Declare the CarType annotation
public @interface CarType {}
//Declare the constants
public static final int MICROCAR = 0;
public static final int CONVERTIBLE = 1;
public static final int SUPERCAR = 2;
public static final int MINIVAN = 3;
public static final int SUV = 4;
@CarType
private int mType;
@CarType
public int getCarType(){
return mType;
};
public void setCarType(@CarType int type){
mType = type;
}
}
También permiten la finalización del código para ofrecer automáticamente las constantes permitidas.
Cuando crea este código, se genera una advertencia si el parámetro de tipo no hace referencia a una de las constantes definidas.
Combinando constantes con banderas
Usando el IntDef#flag()
establecido en true
, se pueden combinar múltiples constantes.
Usando el mismo ejemplo en este tema:
public abstract class Car {
//Define the list of accepted constants
@IntDef(flag=true, value={MICROCAR, CONVERTIBLE, SUPERCAR, MINIVAN, SUV})
//Tell the compiler not to store annotation data in the .class file
@Retention(RetentionPolicy.SOURCE)
.....
}
Los usuarios pueden combinar las constantes permitidas con una marca (como |
, &
, ^
).