在 Java 中使用默认值创建 Annotation 实例

2024-05-14

如何创建以下注释的实例(所有字段设置为其默认值)。

    @Retention( RetentionPolicy.RUNTIME )
    public @interface Settings {
            String a() default "AAA";
            String b() default "BBB";
            String c() default "CCC";
    }

I tried new Settings(),但这似乎不起作用......


要创建实例,您需要创建一个实现以下功能的类:

  • java.lang.annotation.Annotation https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html
  • 以及您想要“模拟”的注释

例如:public class MySettings implements Annotation, Settings

但你需要特别注意的是correct实施equals and hashCode根据Annotation界面。http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Annotation.html http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Annotation.html

如果您不想一次又一次地执行此操作,请查看javax.enterprise.util.AnnotationLiteral http://docs.jboss.org/cdi/api/1.0/javax/enterprise/util/AnnotationLiteral.html班级。 这是 CDI(上下文依赖注入)-API 的一部分。(@查看代码) http://grepcode.com/file/repo1.maven.org/maven2/javax.enterprise/cdi-api/1.0/javax/enterprise/util/AnnotationLiteral.java

要获取默认值,您可以使用 akuhn(以前称为:Adrian)描述的方式。Settings.class.getMethod("a").getDefaultValue()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中使用默认值创建 Annotation 实例 的相关文章

随机推荐