如何创建以下注释的实例(所有字段设置为其默认值)。
@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(使用前将#替换为@)