Android
Annotazioni Typedef: @IntDef, @StringDef
Ricerca…
Osservazioni
Il pacchetto di annotazioni include un numero di annotazioni di metadati utili con cui puoi decorare il tuo codice, per aiutare a cogliere i bug.
Basta aggiungere la dipendenza nel file build.gradle
.
dependencies {
compile 'com.android.support:support-annotations:25.3.1'
}
Annotazioni IntDef
Questa annotazione garantisce che vengano utilizzate solo le costanti integer valide che ci si aspetta.
Il seguente esempio illustra i passaggi per creare un'annotazione:
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;
}
}
Inoltre, consentono il completamento del codice per offrire automaticamente le costanti consentite.
Quando si genera questo codice, viene generato un avviso se il parametro type non fa riferimento a una delle costanti definite.
Combinare le costanti con le bandiere
Utilizzando l' IntDef#flag()
impostato su true
, è possibile combinare più costanti.
Utilizzando lo stesso esempio in questo argomento:
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)
.....
}
Gli utenti possono combinare le costanti permesse con un flag (come |
, &
, ^
).