亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 通過反射遍歷所有字段修改值的實例代碼

 更新時間:2021年05月18日 08:39:19   作者:如漩渦  
這篇文章主要介紹了java 通過反射遍歷所有字段修改值,通過java 的反射,遍歷所有字段,進行一個判斷,取出來的值是帶有圖片鏈接的,進行操作,省去了很多代碼,理解也很容易,下面跟隨小編看下實例代碼吧

先給大家介紹下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());

    /**
     * 通過反射所有字段,帶有圖片的字段,重新賦值
     *
     * @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")) {
                        // 業(yè)務操作
                        // 更新為新的值
                        setMethod.invoke(obj, builder.toString());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 }

ps:下面看下Java數(shù)組遍歷的幾種方式

數(shù)組遍歷方式參考:

方法一:for循環(huán)遍歷

  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)靜態(tài)方法遍歷

  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遍歷所有字段修改值的資料請關注腳本之家其它相關文章!

相關文章

  • 圖解Java線程的生命周期

    圖解Java線程的生命周期

    本文主要介紹了Java中線程的5種狀態(tài)(新建(New)、就緒(Runable)、運行(Running)、阻塞(Blocked)和死亡(Dead))之間的轉換圖解,有需要的朋友可以參考下
    2014-10-10
  • Java 讀寫Properties配置文件詳解

    Java 讀寫Properties配置文件詳解

    這篇文章主要介紹了Java 讀寫Properties配置文件詳解的相關資料,這里舉例說明該如何實現(xiàn),具有參考價值,需要的朋友可以參考下
    2016-11-11
  • java短網(wǎng)址服務(TinyURL)生成算法

    java短網(wǎng)址服務(TinyURL)生成算法

    這篇文章主要為大家詳細介紹了java短網(wǎng)址服務生成算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java中Hibernate面試知識點整理

    java中Hibernate面試知識點整理

    在本篇文章里小編給大家整理的是一篇關于java中Hibernate面試知識點整理內容,有興趣的朋友們可以學習參考下。
    2021-01-01
  • 詳細分析Java內部類——局部內部類

    詳細分析Java內部類——局部內部類

    這篇文章主要介紹了Java局部內部類的相關資料,幫助大家更好的理解和學習Java 內部類的知識,感興趣的朋友可以了解下
    2020-08-08
  • java實現(xiàn)學生信息管理系統(tǒng)

    java實現(xiàn)學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 使用Spring Security控制會話的方法

    使用Spring Security控制會話的方法

    在本文中,我們將說明Spring Security如何允許我們控制HTTP會話。這篇文章主要介紹了使用Spring Security控制會話 ,需要的朋友可以參考下
    2019-05-05
  • JDK21新特性Record?Patterns記錄模式詳解(最新推薦)

    JDK21新特性Record?Patterns記錄模式詳解(最新推薦)

    這篇文章主要介紹了JDK21新特性Record?Patterns記錄模式詳解,本JEP建立在Pattern?Matching?for?instanceof(JEP?394)的基礎上,該功能已在JDK?16中發(fā)布,它與Pattern?Matching?for?switch(JEP?441)共同演進,需要的朋友可以參考下
    2023-09-09
  • springBoot+mybatis-plus實現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫的數(shù)據(jù)增刪改

    springBoot+mybatis-plus實現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫的數(shù)據(jù)增刪改

    mybatis-plus技術是簡化了繁瑣的代碼操作,把增刪改查的語句都內置了,直接調用就可以實現(xiàn)數(shù)據(jù)庫的增刪改查了,這篇文章主要給大家介紹了關于springBoot+mybatis-plus實現(xiàn)監(jiān)聽mysql數(shù)據(jù)庫數(shù)據(jù)增刪改的相關資料,需要的朋友可以參考下
    2024-01-01
  • 新手了解java IO基礎知識

    新手了解java IO基礎知識

    這篇文章主要介紹了java 基礎知識之IO總結的相關資料,Java中的I/O分為兩種類型,一種是順序讀取,一種是隨機讀取,需要的朋友可以參考下,希望對你有幫助
    2021-07-07

最新評論