Android
Annotations Typedef: @IntDef, @StringDef
Recherche…
Remarques
Le package d'annotations comprend un certain nombre d'annotations de métadonnées utiles avec lesquelles vous pouvez décorer votre propre code pour vous aider à détecter les bogues.
Ajoutez simplement la dépendance dans le fichier build.gradle
.
dependencies {
compile 'com.android.support:support-annotations:25.3.1'
}
IntDef Annotations
Cette annotation garantit que seules les constantes entières valides attendues sont utilisées.
L'exemple suivant illustre les étapes pour créer une annotation:
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;
}
}
Ils permettent également l'achèvement du code pour offrir automatiquement les constantes autorisées.
Lorsque vous générez ce code, un avertissement est généré si le paramètre type ne fait pas référence à l'une des constantes définies.
Combinaison de constantes avec des drapeaux
En utilisant l' IntDef#flag()
défini sur true
, plusieurs constantes peuvent être combinées.
En utilisant le même exemple dans cette rubrique:
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)
.....
}
Les utilisateurs peuvent combiner les constantes autorisées avec un indicateur (tel que |
, &
, ^
).