IntDef Annotations

suggest change

This annotation ensures that only the valid integer constants that you expect are used.

The following example illustrates the steps to create an annotation:


public abstract class Car {

    //Define the list of accepted constants

    //Tell the compiler not to store annotation data in the .class file
    //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;

    private int mType;

    public int getCarType(){
        return mType;

    public void setCarType(@CarType int type){
        mType = type;

They also enable code completion to automatically offer the allowed constants.

When you build this code, a warning is generated if the type parameter does not reference one of the defined constants.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents