使用IntDef

时间:2017-11-03 12:52:14

标签: java android annotations

我试图用IntDef注释替换源代码中的一些枚举。我一直在关注this文档。

我有一个变量用于保存以前是枚举的ViewMode。现在我把它改成了下面的东西。

@Retention(RetentionPolicy.SOURCE)
@IntDef({ViewMode.VIEW_MODE_LIST_VIEW, ViewMode.VIEW_MODE_CARD_VIEW})
public @interface ViewMode {
    int VIEW_MODE_LIST_VIEW = 0;
    int VIEW_MODE_CARD_VIEW = 1;
}

@ViewMode
public int currentViewMode = ViewMode.VIEW_MODE_LIST_VIEW;

现在测试这是否安全我在方法

中完成了以下操作
this.currentViewMode = 987; //currentViewMode should be 0 or 1. Nothing else.

但现在这不会给我一个编译错误。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您不会收到编译错误,因为枚举注释只是lint检查:请参阅Improve Your Code with Lint

您应该直接在Android Studio中看到错误标记,或者从命令行运行android lint检查:请参阅Improve Your Code with Lint

注意:您还可以将构建配置为自动运行lint检查:
SO: Run lint when building android studio projects
但是运行linter需要一些时间,因此您可以选择仅为发布版本运行它或仅在CI服务器上运行它。