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

网友投稿 520 2022-10-24


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)http://;

if (o != null) {

String s = o.toString();

if (s.contains("jpg")) {

// 业务操作

// 更新为新的值

setMethod.invoke(obj, builder.toString());

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

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

数组遍历方式参考:

方法一:forhttp://循环遍历

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(elehttp://ment);

}

方法三: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遍历所有字段修改值的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:手机奴隶
下一篇:获取linux内核所有ip
相关文章

 发表评论

评论列表