Sök…


Anmärkningar

Annoteringspaketet innehåller ett antal användbara metadataanteckningar som du kan dekorera din egen kod för att hjälpa till att fånga buggar.

Lägg bara till beroendet i build.gradle filen.

dependencies {
    compile 'com.android.support:support-annotations:25.3.1'
}

IntDef-kommentarer

Den här anteckningen säkerställer att endast de giltiga heltalskonstanter som du förväntar dig används.
Följande exempel illustrerar stegen för att skapa en kommentar:

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;
    }
}

De möjliggör också att kodavslutningen automatiskt erbjuder de tillåtna konstanterna.
När du bygger den här koden genereras en varning om typparametern inte hänvisar till en av de definierade konstanterna.

Kombinera konstanter med flaggor

Med hjälp av IntDef#flag() inställt på true kan flera konstanter kombineras.

Använd samma exempel i det här ämnet:

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)

    .....

}

Användare kan kombinera de tillåtna konstanterna med en flagga (som | , & , ^ ).



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow