Android
Typedef Adnotations: @IntDef, @StringDef
Szukaj…
Uwagi
Pakiet adnotacji zawiera szereg użytecznych adnotacji metadanych, za pomocą których można ozdobić własny kod, aby pomóc w wykrywaniu błędów.
Wystarczy dodać zależność w pliku build.gradle
.
dependencies {
compile 'com.android.support:support-annotations:25.3.1'
}
Adnotacje IntDef
Ta adnotacja zapewnia, że używane są tylko prawidłowe stałe liczby całkowite, których się spodziewasz.
Poniższy przykład ilustruje kroki tworzenia adnotacji:
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;
}
}
Umożliwiają także uzupełnianie kodu, aby automatycznie oferować dozwolone stałe.
Podczas budowania tego kodu generowane jest ostrzeżenie, jeśli parametr type nie odwołuje się do jednej ze zdefiniowanych stałych.
Łączenie stałych z flagami
Przy użyciu IntDef#flag()
ustawionego na wartość true
można łączyć wiele stałych.
Korzystając z tego samego przykładu w tym temacie:
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)
.....
}
Użytkownicy mogą łączyć dozwolone stałe z flagą (np. |
, &
, ^
).