gpt4 book ai didi

java - 如何使用 Java 获取注解名称

转载 作者:行者123 更新时间:2023-12-03 23:59:07 24 4
gpt4 key购买 nike

我正在使用下面的方法来获取一个类的所有getter方法的名称:

 private static Map<String, Object> fetchGetterMethods(Object object) {
Map<String, Object> result = new HashMap<String, Object>();
BeanInfo info;
try {
info = Introspector.getBeanInfo(object.getClass());
for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
Method reader = pd.getReadMethod();
if (reader != null) {
String name = pd.getName();
if (!"class".equals(name)) {
try {
Object value = reader.invoke(object);
result.put(name, value);
} catch (Exception e) {

}
}
}
}
} catch (IntrospectionException e) {

} finally {
return result;
}

}

我想跳过带有@Transient 注释的getter 方法。我该如何实现?

 @Transient
public boolean isValid() {
}

最佳答案

您所需要的只是 reader.getAnnotation(Transient.class) - 如果它返回一些东西(它将是 Transient 的一个实例),它就有注释。如果它返回null,它没有。您只能对定义使用保留级别运行时显式注释的注释执行此操作,但假设您正在谈论 JPA 的 @Transient,它是。

请注意,在 finally block 中编写 return 语句绝对不是您想要做的事情。

关于java - 如何使用 Java 获取注解名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64812935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com