IntDef Annotations
suggest changeThis 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.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents