Como desabilito as verificações de anotação do Android @IntDef em casos especiais?
Um desses casos é ler um int de um Bundle e armazená-lo na variável restrita pela anotação @IndDef:
public class MainActivity extends ActionBarActivity {
@IntDef({STATE_IDLE, STATE_PLAYING, STATE_RECORDING})
@Retention(RetentionPolicy.SOURCE)
public @interface State {}
public static final int STATE_IDLE = 0;
public static final int STATE_PLAYING = 1;
public static final int STATE_RECORDING = 2;
@MainActivity.State int fPlayerState = STATE_IDLE;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
fPlayerState = savedInstanceState.getInt(BUNDLE_STATE); //Causes "Must be one of: ..." error
Deve haver alguma maneira de suprimir a verificação ou conversão de int para @ MainActivity.State int para definir a variável na última linha.
O outro caso é escrever um teste negativo que chame uma função com parâmetro anotado passando intencionalmente o parâmetro errado para testar se a exceção é lançada nesse caso. Deve haver uma maneira de suprimir a verificação de anotação para compilar esse teste.