添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
风流倜傥的麦片  ·  java ...·  9 小时前    · 
热情的煎鸡蛋  ·  java ...·  9 小时前    · 
风流的啄木鸟  ·  java ...·  9 小时前    · 
不羁的椰子  ·  宝山技工校长专访 ...·  1 月前    · 

java 通过反射遍历所有字段修改值,避免重复set、get

比如一张表里的字段十几个,而这个表里的图片存储字段有八九个,在返回这个实体类的时候,要对图片进行加密或者其他操作,那就要在实体类查询结果出来后,一个个的get修复,再set赋值,代码量很多,另外如果有多个接口用到,就会产生重复代码;
通过java 的反射,遍历所有字段,进行一个判断,取出来的值是带有图片链接的,进行操作,省去了很多代码,下面贴代码
import org . slf4j . Logger ; import org . slf4j . LoggerFactory ; import org . springframework . beans . factory . annotation . Autowired ; import org . springframework . stereotype . Component ; import java . beans . PropertyDescriptor ; import java . lang . reflect . Field ; import java . lang . reflect . Method ; public class ClassUtil { private final Logger logger = LoggerFactory . getLogger ( getClass ( ) ) ; * 通过反射所有字段,带有图片的字段,重新赋值 * @param obj 对象 public void setImageValue ( Object obj ) { try { Class aClass = obj . getClass ( ) ; Field [ ] fields = aClass . getDeclaredFields ( ) ; for ( Field field : fields ) { PropertyDescriptor pd = new PropertyDescriptor ( field . getName ( ) , aClass ) ; // 获取get方法 Method getMethod = pd . getReadMethod ( ) ; // 获取set方法 Method setMethod = pd . getWriteMethod ( ) ; // 通过get方法获取到值 Object o = getMethod . invoke ( obj ) ; if ( o != null ) { String s = o . toString ( ) ; if ( s . contains ( "jpg" ) ) { // 业务操作 // 更新为新的值 setMethod . invoke ( obj , builder . toString ( ) ) ; } catch ( Exception e ) { e . printStackTrace ( ) ;
Java 遍历 一个类的每个属性并赋 Java 编程中,我们经常需要对一个类的每个属性进行 遍历 并赋 。这在处理复杂数据结构或进行数据迁移时非常有用。本文将介绍如何使用 Java 反射 API来实现这一功能,并提供详细的代码示例。 什么是 反射 Java 反射 API是一种在运行时检查或 修改 类、接口、 字段 和方法的机制。通过 反射 ,我们可以...
public static void main(String[] args) throws Exception { Student s = new Student("张三", 23); System.out.println(s); Tool.setProperty(s, "... 2.前端传过来的json 字段 String course,经过特殊处理,再使用GsonBuilder转化为curCourse 接着,使用 反射 遍历 字段 ,将curCourse的其他 字段 更新至oldCourse //将不用特殊处理的course 字段 更新 private... private static boolean isBean(Class<?> clazz) { if (clazz.equals(String.class) || ClassUtil.isBasicType(clazz)) { return false; if (clazz.isArray() &&...
业务场景:一个房产交易系统中的业务需求,查询房屋交易状态接口,调用第三方接口返回一个vo 对象 ,该 对象 的属性主要是描述该房屋的交易情况,比如是否抵押,是否被查封等,现在需要利用该 对象 决定返回给调用方的返回 。(现在一个 对象 中有很多个属性,大部分属性的 影响返回结果) vo 对象 : @Data public class BDCQZTXX { private String fwbm;//房屋编码 private String bdcdyh;//不动产单元号 private St