首页 > Java > java教程 > 正文

如何在 Java 中访问不同类中的注释值?

Mary-Kate Olsen
发布: 2024-10-26 21:34:03
原创
182 人浏览过

How Can I Access Annotation Values in a Different Class in Java?

在 Java 中访问注释值

注释是 Java 中向类、方法和字段添加元数据的强大机制。可以在运行时访问和使用这些注释来修改注释代码的行为。出现的一个常见问题是是否可以读取不同类中注释的值。

这个问题的答案是肯定的,但这取决于注释的保留策略。注释可以具有以下三种保留策略之一:

  • 来源:注释被编译器丢弃,并且在运行时不可用。
  • CLASS: 注解保留在类文件中,但在运行时通过反射不可用。
  • RUNTIME: 注解保留在类文件中,并在运行时通过反射可用。

要读取不同类中注释的值,注释必须具有运行时保留策略。要指定运行时保留策略,请使用 @Retention 注解,后跟 RetentionPolicy 枚举:

@Retention(RetentionPolicy.RUNTIME)
@interface Column {
    String columnName();
}
登录后复制

一旦注解具有运行时保留策略,您就可以使用反射来访问另一个类中的值:

for (Field f : MyClass.class.getFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}
登录后复制

注意,要访问私有字段,需要使用 getDeclaredFields() 方法而不是 getFields():

for (Field f : MyClass.class.getDeclaredFields()) {
    Column column = f.getAnnotation(Column.class);
    if (column != null) {
        System.out.println(column.columnName());
    }
}
登录后复制

以上是如何在 Java 中访问不同类中的注释值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板