List<TechnicalParam> technicalParams=extAsset.getTechnicalParam();
TechnicalParam technicalParam=new TechnicalParam();
Field[] fieldst = new TechnicalParam().getClass().getDeclaredFields();//获取该类的全部属性字段
for(TechnicalParam technicalParamss:technicalParams){
baowen.append("<mdm:TechnicalParam>");
for(Field field:fieldst){//遍历集合
for(Annotation annotation:field.getAnnotations()){//根据从字段属性获取其相应的注解集合
//String fieldname=field.getName().toUpperCase();
String methodname="get"+field.getName().toUpperCase();//根据字段属性拼接其get方法
System.out.println(fieldname);
//String str=annotation.toString();
//Pattern p=Pattern.compile("name=([\\w]*),");
Matcher m=Pattern.compile("name=([\\w]*),").matcher(annotation.toString());//截取注解,获取方法名称
Method method = technicalParam.getClass().getMethod(methodname);//根据方法名称获取方法
System.out.println(method);
Object o = method.invoke(technicalParamss, null);//根据方法获取属性值
while(!m.hitEnd() && m.find() && !(o==null)){
String column=m.group(1);
baowen.append("<mdm:"+column+">");
/*Method method = technicalParam.getClass().getMethod(methodname);
//System.out.println(method);
Object o = method.invoke(technicalParam, null);*/
baowen.append(o+"</mdm:"+column+">");
//System.out.println(column);
}
}
}
baowen.append("</mdm:TechnicalParam>");
}
注意:在根据字段获取其相应的注解后,在本文中只采取截取字符串的方式再拼接字符串从而获取相应的方法