是否可以在 java 中读取注释的值?

新手上路,请多包涵

这是我的代码:

 @Column(columnName="firstname")

private String firstName;

 @Column(columnName="lastname")
 private String lastName;

 public String getFirstName() {
  return firstName;
 }

 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }

 public String getLastName() {
  return lastName;
 }

 public void setLastName(String lastName) {
  this.lastName = lastName;
 }

是否可以在另一个类中读取我的注释 @Column( columnName =“xyz123”) 的值?

原文由 BeeS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 314
1 个回答

是的,如果您的 Column 注释具有运行时保留

@Retention(RetentionPolicy.RUNTIME)
@interface Column {
    ....
}

你可以这样做

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

更新:要获取私有字段,请使用

Myclass.class.getDeclaredFields()

原文由 Cephalopod 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题