在Android中,建议开发人员不要使用enum
。 Android不支持enum
,而是支持一些注释,例如@IntDef
。
我试过这个注释是一个简单的项目。我的代码如下所示:
@IntDef({APPLE, BANANA})
public @interface Fruit {
}
public static final int APPLE = 1;
public static final int BANANA = 2;
private @Fruit int mFruit;
如果我尝试将变量mFruit
设置为6,我会看到一条消息,它必须是APPLE
或BANANA
之一。这很好,效果很好。
当我将此代码粘贴到我的第二个应用程序并尝试将变量设置为与APPLE
或BANANA
不同的值时,它可以正常工作,并且没有警告消息,我可以构建应用程序。
所以,我的问题是:有什么方法可以禁用或启用对此注释的支持?什么可以导致这种不同的行为,一些项目支持它,一些项目不支持?我在两个项目中都使用相同版本的Android Studio。
答案 0 :(得分:1)
您可能需要明确设置retention policy.查看official Android IntDef example,其中保留政策设置为@Retention(SOURCE)