Android Typedef Annotations suggest change

IntDef Annotations

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

The following example illustrates the steps to create an annotation:

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

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:

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



Table Of Contents