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 | , & , ^ ).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow