国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

java 通過(guò)反射遍歷所有字段修改值的實(shí)例代碼

發(fā)布時(shí)間:2021-07-05 18:40 來(lái)源:腳本之家 閱讀:0 作者:如漩渦 欄目: 開(kāi)發(fā)技術(shù)

先給大家介紹下java遍歷所有字段修改值的代碼,具體內容詳情如下所示:

java 通過(guò)反射遍歷所有字段修改值,避免重復set、get 比如一張表里的字段十幾個(gè),而這個(gè)表里的圖片存儲字段有八九個(gè),在返回這個(gè)實(shí)體類(lèi)的時(shí)候,要對圖片進(jìn)行加密或者其他操作,那就要在實(shí)體類(lèi)查詢(xún)結果出來(lái)后,一個(gè)個(gè)的get修復,再set賦值,代碼量很多,另外如果有多個(gè)接口用到,就會(huì )產(chǎn)生重復代碼; 通過(guò)java 的反射,遍歷所有字段,進(jìn)行一個(gè)判斷,取出來(lái)的值是帶有圖片鏈接的,進(jìn)行操作,省去了很多代碼,下面貼代碼

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

    /**
     * 通過(guò)反射所有字段,帶有圖片的字段,重新賦值
     *
     * @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();
                // 通過(guò)get方法獲取到值
                Object o = getMethod.invoke(obj);
                if (o != null) {
                    String s = o.toString();
                    if (s.contains("jpg")) {
                        // 業(yè)務(wù)操作
                        // 更新為新的值
                        setMethod.invoke(obj, builder.toString());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 }

ps:下面看下Java數組遍歷的幾種方式

數組遍歷方式參考:

方法一: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工具類(lèi)中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 通過(guò)反射遍歷所有字段修改值的實(shí)例代碼的詳細內容,更多關(guān)于java遍歷所有字段修改值的資料請關(guān)注腳本之家其它相關(guān)文章!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

全免费a级毛片免费看| 韩国精品一区二区三区四区| 免费观看无遮挡WWW的视频| 久久人人爽爽爽人久久久| 无码超乳爆乳中文字幕久久| 欧美性大战XXXXX久久久√|