获取 Bean 属性 注解的 值

[b][size=medium]注意 : 自定义的Annotation中必须声明[color=red]@Retention(RetentionPolicy.RUNTIME)[/color] . 不然不能获取 注解的值[/size][/b]

[b]1. 自定义Annotation[/b]
@Retention(RetentionPolicy.RUNTIME)
public @interface Hidden {
boolean value();
}

[b]2. Bean对象[/b]

public class CompanyBean {
@Hidden(true)
@Header("公司ID")
private int companyId;
@Header("公司编码")
private String member;
@Header("公司名称")
private String companyName;
.....

3. 获取属性的值

JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = null;

Field[] fields = CompanyBean.class.getDeclaredFields();
for(Field f : fields){
jsonObject = new JSONObject();
Class cls = f.getType();
Hidden hidden = f.getAnnotation(Hidden.class);
if(hidden != null){
boolean isHidden = hidden.value();
jsonObject.put("hidden", isHidden);
}
Header header = f.getAnnotation(Header.class);
System.out.println(header);

if(header != null) {
jsonObject.put("header", header.value());
}
jsonObject.put("name", f.getName());
if(!"String".equals(cls.getSimpleName())) jsonObject.put("type", cls.getSimpleName());
if("Date".equals(cls.getSimpleName())) {
jsonObject.put("type", "date");
jsonObject.put("dateFormat", "Y-m-d");
}
jsonArray.add(jsonObject);
}
System.out.println(jsonArray);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值