使用反射来遍历Java对象类中的所有属性名和属性值

编程入门 行业动态 更新时间:2024-10-27 10:21:13

使用反射来遍历Java对象类中的所有<a href=https://www.elefans.com/category/jswz/34/1771415.html style=属性名和属性值"/>

使用反射来遍历Java对象类中的所有属性名和属性值

有些时候我们需要获取到一个对象中的所有属性名和属性值,对其值进行修改或是其他操作。
这种时候我们再使用get(),set()来进行操作就会有些麻烦了。
因此我们可以选择使用反射来进行遍历对象中的所有属性名和属性值。在遍历中编写逻辑来对属性进行操作。
示例代码如下:

  • 创建一个Person作为实体类
package com.vinci.reflectionTraversalAttribute.entity;public class Person {private String name;  private int age;  private String email;public Person() {}public Person(String name, int age, String email) {this.name = name;  this.age = age;  this.email = email;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public int getAge() {  return age;  }  public void setAge(int age) {  this.age = age;  }  public String getEmail() {  return email;  }  public void setEmail(String email) {  this.email = email;  }@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", email='" + email + '\'' +'}';}
}
  • 创建一个Person对象并给其属性赋值
	/*** @description: 创建一个Person对象,并给属性赋值* @author: Vinci* @date: 2023/11/9 10:10**/public static Person getPerson(){return new Person("Vinci",24,"atvinci@foxmail");}
  • 利用反射来遍历对象中的属性
public static void main(String[]args) throws IllegalAccessException {//创建一个Person对象Person person = getPerson();//通过getDeclaredFields()方法获取对象类中的所有属性(含私有)Field[] fields = person.getClass().getDeclaredFields();//遍历属性for (Field field : fields) {//通过setAccessible()设置为true,允许通过反射访问私有变量field.setAccessible(true);//获取属性值Object value = field.get(person);//获取属性名String name = field.getName();//输出到控制台System.out.println("属性名:"+name+" 值:"+value);//对name字段进行修改if("name".equals(name)){field.set(person,"李予安");}}//输出修改过的对象到控制台System.out.println("\n修改过的对象: " + person.toString());}

控制台输出结果:

更多推荐

使用反射来遍历Java对象类中的所有属性名和属性值

本文发布于:2023-11-15 19:51:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1605336.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:属性   遍历   射来   类中   对象

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!