我有一个注释
public @interface Field {
String value();
}
和java类,由它注释:
public class Animal {
@Field("name")
private String name;
}
我尝试通过下一个代码列出所有字段的注释:
for(field in clazz.declaredFields){
for(annotation in field.annotations){
when(annotation){
is Field -> {
//do something
}
}
}
}
克拉兹在哪里Class<T>
but field.annotations
是空的。
如何正确列出注释?
默认情况下,Java 注释不会在运行时保留,因此您需要指定:
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Retention(RUNTIME)
public @interface Field {
String value();
}
Kotlin 注释 https://kotlinlang.org/docs/reference/annotations.html默认保留:
annotation class Field(val value: String)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)