将属性字段中包含”user“的(不区分大小写),全部赋值为”测试“
private static void reflectionUserInfo(Object obj,String fieldName, String filedValue) { //获取obj的所有属性 Field[] fields = obj.getClass().getDeclaredFields(); //打印出所有的属性值 // Arrays.stream(fields).forEach(System.out::println); //向某个属性中赋值 Arrays.stream(fields).filter(field1 -> { return field1.getName().toLowerCase().contains(fieldName.toLowerCase()); }).forEach(o->{ //默认为false 私有属性不能 *** 作 o.setAccessible(true); try { //将属性赋值 o.set(obj,filedValue); //获取当前属性的value // String value = (String) o.get(obj); } catch (IllegalAccessException e) { e.printStackTrace(); } }); } //测试 public static void main(String[] args) { T00User user = new T00User(); System.out.println("赋值前: "+ user); reflectionUserInfo(user,"user","测试"); System.out.println("赋值前: "+ user); }
打印的结果
赋值前: T00User(username=null, password=null, realname=null, createUser=null, updateUser=null)
赋值前: T00User(username=测试, password=null, realname=null, createUser=测试, updateUser=测试)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)