JAVA-リフレクションで一般的に使用される方法

JAVA-リフレクションで一般的に使用される方法

クラス関連

//获取运行时类对象
Class<?> clazz = obj.getClass();

属性関連

//获取实体类的所有属性
Field[] fields = clazz.getDeclaredFields();
//开启可访问私有变量
field.setAccessible(true);
//获取属性类型
String type = field.getGenericType().toString();
//将来属性名首字母大写
String methodName = field.getName().replaceFirst(field.getName().substring(0, 1), field.getName().substring(0, 1).toUpperCase());
//拼接成get方法
Method methodGet = clazz.getMethod("get" + methodName);
//调用属性get方法
String str = (String) methodGet.invoke(obj);
//为属性设置值
field.set(obj, 0.00);

注釈関連

ここに画像の説明を挿入

//判断属性上是否存在PropertyCheck注解
boolean isAnnotationPresent = field.isAnnotationPresent(PropertyCheck.class);
//获取注解的对象
PropertyCheck propertyCheck = field.getAnnotation(PropertyCheck.class);
//获取注解的对象属性内容
boolean notBlank = propertyCheck.notBlank();
//获取注解的对象属性内容
String msg = propertyCheck.msg();
//打印注解内容
System.out.println(field.getName() + " notBlank = " + b + ", msg = " + msg);

おすすめ

転載: blog.csdn.net/weixin_44642403/article/details/109740659