Android中的IntDef注释

时间:2015-09-17 13:09:09

标签: android annotations

在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,我会看到一条消息,它必须是APPLEBANANA之一。这很好,效果很好。

当我将此代码粘贴到我的第二个应用程序并尝试将变量设置为与APPLEBANANA不同的值时,它可以正常工作,并且没有警告消息,我可以构建应用程序。

所以,我的问题是:有什么方法可以禁用或启用对此注释的支持?什么可以导致这种不同的行为,一些项目支持它,一些项目不支持?我在两个项目中都使用相同版本的Android Studio。

1 个答案:

答案 0 :(得分:1)

您可能需要明确设置retention policy.查看official Android IntDef example,其中保留政策设置为@Retention(SOURCE)