读书人

获取 Bean 属性 引文的 值

发布时间: 2012-12-27 10:17:10 作者: rapoo

获取 Bean 属性 注解的 值
注意 : 自定义的Annotation中必须声明@Retention(RetentionPolicy.RUNTIME) . 不然不能获取 注解的值

1. 自定义Annotation

@Retention(RetentionPolicy.RUNTIME)public @interface Hidden {boolean value();}

2. Bean对象
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);

读书人网 >编程

热点推荐