我有一个枚举:
public enum AppEnums { SERVICE_ERROR, CONNECTION_ERROR; }
我想在Android注释的indDef中使用它:
@IntDef({AppEnums.CONNECTION_ERROR, AppEnums.SERVICE_ERROR}) public @interface ServiceErrors { }
错误显示:
找到不兼容的类型,必需:“ long”
这种不兼容该怎么办?
我不想手动处理AppEnum参数的值,Enum通常会自动创建值。AppEnums.CONNECTION_ERROR.ordinal()返回enum参数的int值,但在这里不起作用。
AppEnums.CONNECTION_ERROR.ordinal()
IntDef注释的主要思想是使用int常量集,例如an enum,但 不使用 enum。在这种情况下,您必须手动声明所有常量。
IntDef
int
enum
@IntDef({Status.IDLE, Status.PROCESSING, Status.DONE, Status.CANCELLED}) @Retention(RetentionPolicy.SOURCE) @interface Status { int IDLE = 0; int PROCESSING = 1; int DONE = 2; int CANCELLED = 3; }
您可以在此处查看详细的示例。