返回顶部
首页 > 资讯 > 后端开发 > Python >java 通过反射遍历所有字段修改值的实例代码
  • 512
分享到

java 通过反射遍历所有字段修改值的实例代码

2024-04-02 19:04:59 512人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

先给大家介绍下java遍历所有字段修改值的代码,具体内容详情如下所示: java 通过反射遍历所有字段修改值,避免重复set、get 比如一张表里的字段十几个,而这个表里的图片存储字

先给大家介绍下java遍历所有字段修改值的代码,具体内容详情如下所示:

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());

    
    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();
        }
    }
 }

ps:下面看下Java数组遍历的几种方式

数组遍历方式参考:

方法一:for循环遍历


  public static void main(String[] args) {
        int Arr[][]={{1,2,3},{4,5,6}};
        for (int i = 0; i < Arr.length; i++) {
            for (int j = 0; j < Arr[i].length; j++) {
                System.out.print(Arr[i][j]+" ");
            }
        }
    }

方法二:foreach遍历


 int a[] = {1,2,3,4} ;
        for (int element:a){
            System.out.println(element);

        }

方法三:Arrays工具类中toString (或deepToString)静态方法遍历


  int a[] = {1,2,3,4} ;
        int b[][] = {{3,4},{1,2}};
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.deepToString(b));

以上就是java 通过反射遍历所有字段修改值的实例代码的详细内容,更多关于java遍历所有字段修改值的资料请关注编程网其它相关文章!

--结束END--

本文标题: java 通过反射遍历所有字段修改值的实例代码

本文链接: https://lsjlt.com/news/126197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作