public void test001() throws IllegalAccessException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException {
Empl empl = new Empl();
empl.setId(1);
empl.setEmplCode(“2021001”);
empl.setEmplName(“中科大”);
empl.setAge(20);
/java.beans.PropertyDescriptor[name=emplName;
propertyType=class java.lang.String;
readMethod=public java.lang.String com.example.entity.Empl.getEmplName();
writeMethod=public void com.example.entity.Empl.setEmplName(java.lang.String)]/
PropertyDescriptor origDescriptors[] = PropertyUtils.getPropertyDescriptors(empl);
for (PropertyDescriptor p:origDescriptors) {
String name = p.getName();
if(“class”.equalsIgnoreCase(name)&&“class java.lang.Class”.equalsIgnoreCase(p.getPropertyType().toString())){
continue;
}
System.out.println(p.toString());
System.out.println("=");
System.out.println(name);
System.out.println(p.getPropertyType().toString());
//字段对应的值
Object simpleProperty = PropertyUtils.getSimpleProperty(empl, p.getName());
System.out.println("=获取字段对应的值="+simpleProperty+"=");
//通过反射获取注解(父类属性无法获取)
Field declaredField = empl.getClass().getDeclaredField(name);
System.out.println(JSON.toJSONString(declaredField));
QueryType queryType = declaredField.getAnnotation(QueryType.class);
if(queryType != null){
System.out.println("----------------");
System.out.println(name);
System.out.println(queryType.orderBy());
System.out.println("----------------");
}
System.out.println("==========");
}
}
java获取实体的字段、属性、字段值、注解的值
最新推荐文章于 2024-03-12 17:09:51 发布