Я определил этот @IntDef
public static final int LINE = 0;
public static final int CORNER = 1;
@IntDef({LINE, CORNER})
@Retention(RetentionPolicy.SOURCE)
public @interface ShapeTypes {}
и назначил его одному из моих учеников, как этот
public @ShapeTypes int shapeType;
, и если я правильно помню, он работал, нотеперь в Android Studio 3.1.2 я могу сделать что-то вроде этого
myClassObj.shapeType = 99;
Разве это не должно вызывать ошибки компиляции и / или выполнения?Есть ли способ определить диапазон допустимых значений для переменных сейчас?
Обновление Кажется, что все аннотации больше не работают.
@IntRange(from = 4, to = 18)
public int size;
делаетне влияет на утверждение size = 20;
Я что-то упустил?Какие-нибудь настройки для включения аннотаций?