- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试用 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.
但是现在这并没有给我一个编译错误。我在这里遗漏了什么吗?
最佳答案
您不会收到编译错误,因为枚举的注释只是 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 服务器上运行它。
关于java - 使用 IntDef 的类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096278/
我不清楚如何使用 @Intdef 将它设为这样的标志: @IntDef( flag = true value = {NAVIGATION_MODE_STANDARD, NAVIGATION_M
https://developer.android.com/reference/android/support/annotation/IntDef.html 我正在寻找一个如何定义局部变量的示例。 我
我正在尝试使用 android.content.pm.ActivityInfo 中的 @ScreenOrientation。它的声明: @IntDef({ SCREEN_ORIENTA
我正在尝试用 IntDef 注释替换源代码中的一些枚举。我一直在关注this文档。 我有一个用于保存 ViewMode 的变量,该变量以前是一个枚举。现在我已将其更改为如下所示。 @Retention
关于通过 Intent 发送 IntDef 的最佳方式有什么想法吗? ps: 如果你简单地将它作为一个 int 发送,你就失去了类型检查,这是使用 intdef 的主要目标 最佳答案 您的 IntDe
我有这个代码示例: class MeasureTextView: TextView { constructor(context: Context?) : super(context)
在Android中,建议开发者不要使用enum。 Android 不支持 enum,而是支持一些注释,例如 @IntDef。 我试过这个注解是一个简单的项目。我的代码如下所示: @IntDef({AP
如何使用@IntDef 避免参数化枚举。 我想保留一些与每个枚举/类型关联的静态细节(例如关联的 URl 、关联的可绘制对象等)。 TYPE_ONE(R.string.res, Urls.URL1),
以下面的例子为例。 错误信息 Must be one of: DownloadRequest.STATUS_UNKNOWN, DownloadRequest.STATUS_DOWNLOADING, D
这样的一种情况是从 Bundle 中读取一个 int 并将其存储到受 @IndDef 注释限制的变量中: public class MainActivity extends ActionBarActi
我正在研究如何更新一些现有代码以使用新的 Android LiveData 架构模式。希望代码示例是不言自明的,我正在努力让 @IntDef/@Interface 处理实时数据。我很高兴在 ViewM
我想要一个只接受 2 个值的函数,比如说一个和两个。我可以为它使用枚举,但对于 Android,使用常量 (@IntRef) 被认为更好。 所以我这样做了: @Retention(RetentionP
我的库中有以下代码: @Documented @IntDef({OpacityAnimationType.NONE, OpacityAnimationType.BLINKING,
我知道将常量与枚举进行比较时,常量占用更少的空间并且可以是原始的。我在研究@Intdef annotation在 android 中,有人可以告诉我使用 @Intdef 还是使用枚举更好的存储。现在是
使用 Android Studio 构建 Android 版本的 React Native 应用。我刚收到 'error: cannot find symbol class IntDef' 在以下代码
将 JacksonAnnotations 与 Android 支持注释一起使用。我的 POJO 是: @JsonIgnoreProperties(ignoreUnknown = true) publi
考虑这个类: public class MyClassOfMystery { public static final int NO_FLAGS = ~0; public static
我正在尝试在Android开发中实现@IntDef注解。 第一种方法:在 Constant.java 类中分隔的定义看起来很棒: public class Constant { @IntDef(
my Android Studio screenshot Android Studio 构建失败并显示消息:找不到符号“@IntDef”,但是 IDE 中显示的 java 代码没有显示错误,正如您在链
这是我的代码: 常量.kt package sample.com.sample_app object Const { const val NAVIGATION_MODE_STANDARD =
我是一名优秀的程序员,十分优秀!