Android
Typedef Annotaties: @IntDef, @StringDef
Zoeken…
Opmerkingen
Het annotatiepakket bevat een aantal handige metadata-annotaties waarmee u uw eigen code kunt versieren om bugs te helpen vangen.
Voeg gewoon de afhankelijkheid toe aan het bestand build.gradle
.
dependencies {
compile 'com.android.support:support-annotations:25.3.1'
}
IntDef Annotaties
Deze annotatie zorgt ervoor dat alleen de geldige integer-constanten worden gebruikt die u verwacht.
Het volgende voorbeeld illustreert de stappen om een annotatie te maken:
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;
}
}
Ze maken het ook mogelijk om de code aan te vullen om automatisch de toegestane constanten aan te bieden.
Wanneer u deze code maakt, wordt een waarschuwing gegenereerd als de parameter type niet verwijst naar een van de gedefinieerde constanten.
Constanten combineren met vlaggen
Met behulp van het IntDef#flag()
ingesteld op true
, kunnen meerdere constanten worden gecombineerd.
Met hetzelfde voorbeeld in dit onderwerp:
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)
.....
}
Gebruikers kunnen de toegestane constanten combineren met een vlag (zoals |
, &
, ^
).