Android
Typedef-kommentarer: @IntDef, @StringDef
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 |
, &
, ^
).