当前位置: 首页 > 面试题库 >

枚举和android注释intDef

施海
2023-03-14
问题内容

我有一个枚举:

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值,但在这里不起作用。


问题答案:

IntDef注释的主要思想是使用int常量集,例如an enum,但 不使用 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;
}

您可以在此处查看详细的示例。



 类似资料:
  • 我正在从带注释的java代码生成OpenAPI 3.0文档。但问题是,当我将@Schema注释添加到enum时,所有值都会消失。我正在使用Thorntail 2.3.0。最终使用microprofile openapi分数。 我知道我可以改变。yaml文件,但我需要直接从Java代码生成yaml。 这是我在github上的最小示例:https://github.com/pkristja/openA

  • 我正在使用从以下依赖项导入的Swagger/OpenAPIV3注释创建应用程序的API描述: 其中一个批注是批注,它接受名为的属性,该属性允许字符串数组: 现在,我想使用在枚举类上构造的自定义方法,该方法返回允许的字符串数组,因此不需要在每次向枚举添加类型时添加该方法。以便我们可以这样使用它: 现在这是无法编译的,因为在执行注释时不知道该方法。是否有这样的解决方案允许在SwaggerV3注释属性值

  • 问题内容: 我有一些类型的非变量(例如)。问题是:如何获取与变量引用的枚举常量相关的注释? 问题答案: 正如我已经提供的: 要更清楚: 在这种情况下,我们无需知道的真实类。

  • 问题内容: 我的Java模型上有一个枚举类型,我想映射到数据库中的表。我正在使用“hibernate注释”,但我不知道该怎么做。由于我搜索的答案比较旧,我想知道哪种方法最好? 提前致谢 问题答案: 除了注释,您还需要其他东西吗?例如,以下枚举: 可以这样使用和注释: 您可以使用批注的enum属性指定枚举应如何在数据库中持久化。指定该枚举将作为整数值保留。在这里,设置为将永久保存为0,保留为1,依此

  • 我正在使用maven-jaxb2-plugin和jaxb2-basics-annotate插件从我的xsd自动生成POJO。我已经成功地在POJO中生成了注释。我需要将注释应用于枚举中的方法,但不知道如何做到这一点。 xsd有, 生成的文件 我需要的是在上面的value方法中添加JsonValue注释。 我尝试了以下和其他一些调整,但在绑定。xjb什么都不起作用。 有什么叫做annotateEnu

  • 希望我能很好地阅读这些文档:http://docs.datastax.com/en/developer/java-driver/3.0/java-driver/reference/crudoperations.html。 枚举注释 这在新版本中有没有改变?如果是,文档可能也应该更新。 它似乎已经从源代码中消失了:https://github.com/datastax/java-driver/tre