【发布时间】:2011-05-26 02:05:19
【问题描述】:
我想知道一个类的一些成员变量的注解,我用BeanInfo beanInfo = Introspector.getBeanInfo(User.class)自省一个类,用BeanInfo.getPropertyDescriptors()找到具体的属性,用Classtype = propertyDescriptor.getPropertyType()得到属性的类。
但是我不知道如何将注解添加到成员变量中?
我尝试了 type.getAnnotations() 和 type.getDeclaredAnnotations() ,但都返回了类的注释,而不是我想要的。例如:
class User
{
@Id
private Long id;
@Column(name="ADDRESS_ID")
private Address address;
// getters , setters
}
@Entity
@Table(name = "Address")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
class Address
{
...
}
我想获取地址的注释:@Column,而不是类地址的注释(@Entity、@Table、@Cache)。如何实现呢?谢谢。
【问题讨论】:
-
@Bozho 如果您复制数据库对象可能会很有用,就像这里的情况一样。如果它应该成为不同的数据库实体,则副本不能具有相同的 ID。通用复制算法可以排除带有注释“@Id”的任何内容。
标签: java reflection annotations beaninfo