首页 > 编程语言 >使用Java反射机制将类的属性名和属性值打印出来

使用Java反射机制将类的属性名和属性值打印出来

时间:2023-04-14 14:55:26浏览次数:46  
标签:将类 Java name Object field fieldName obj 属性

可以使用Java反射机制来读取类的属性名和属性值。以下是一个示例代码,可以输出指定类的所有属性及其对应的值:

 1 public static void printFields(Object obj) {
 2     Class clazz = obj.getClass();
 3     Field[] fields = clazz.getDeclaredFields();
 4     for (Field field : fields) {
 5         field.setAccessible(true);
 6         String fieldName = field.getName();
 7         Object fieldValue = null;
 8         try {
 9             fieldValue = field.get(obj);
10         } catch (IllegalAccessException e) {
11             e.printStackTrace();
12         }
13         System.out.println(fieldName + ": " + fieldValue);
14     }
15 }

具体解释如下:

  • Object obj:该方法接收一个 Object 对象作为参数,可以处理任意一个对象。
  • Class clazz = obj.getClass():从对象中获取其所属类的 Class 对象。
  • Field[] fields = clazz.getDeclaredFields():获取该类声明的所有字段。
  • field.setAccessible(true):设置字段可访问,如果字段是私有的,需要先设置为可访问。
  • String fieldName = field.getName():获取字段名称并存储到 fieldName 变量中。
  • Object fieldValue = field.get(obj):获取对象中该字段的值。
  • System.out.println(fieldName + ": " + fieldValue):将字段名称和其对应的值打印出来。

具体调用步骤如下:

  1. 定义要处理的类,例如:
1 public class Person {
2     private String name;
3     private int age;
4     public Person(String name, int age) {
5         this.name = name;
6         this.age = age;
7     }
8 }
  1. 创建一个该类的实例:
1 Person person = new Person("Tom", 20);
  1. 调用 printFields 方法,输出所有属性的名称和内容:
1 printFields(person);

  4.输出结果应该为:

1 name: Tom
2 age: 20

在输出结果中,可以看到 Person 类中的每个属性和对应的值都被打印出来了。

 

标签:将类,Java,name,Object,field,fieldName,obj,属性
From: https://www.cnblogs.com/woju/p/17318283.html

相关文章

  • Java概述(简略)
    Java概述计算机程序:一系列有序指令的集合计算机语言发展史:机器语言-->汇编语言-->高级语言Java技术体系:JavaSE(JavaPlatform,StandardEdition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需......
  • 关键的Java JVM选项和参数
    1.关键的JavaJVM选项和参数让我们来看看在Java环境中可以配置的21个最重要的JVM选项和参数。-Xms:将设置JVM的初始堆大小。-Xmx:将设置JVM的最大堆大小。-Xss:将设置每个线程的内部使用的线程堆栈的大小。-XX:+UseCompressedOops:启用使用压缩对象指针以减少内存使用的功能。-......
  • Java 生成ID 有哪些方式
    除了雪花算法,Java中还有其他生成ID的方法,其中一些常见的包括:UUID(UniversallyUniqueIdentifier):使用随机数生成128位的唯一标识符。Java提供了UUID类来实现此功能。基于时间戳的序列号生成器:使用当前时间戳生成序列号,保证唯一性。这种方法需要考虑时间回拨和并发访......
  • Java中常用排序算法及示例-冒泡排序、希尔排序、选择排序、插入排序、合并排序、基数
    场景Java中需要对数据进行排序处理,常用的排序算法以及示例进行归纳整理。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、冒泡排序冒泡排序法又称为交换排序法,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较。如此扫描......
  • 关于 css 伪元素 content属性值 为中文字符时出现乱码问题的处理
    更多关于csscontent属性的介绍点我 场景:需要在右箭头(点击该箭头是可以跳转到详情页)的左侧补充一个“更多”的文字描述 在一些场景下,使用CSS去做改动会是最优的,比如无源码等 易出现乱码的代码示例i.common-right-arrow-icon{position:relative;}i.comm......
  • java 引用类型
    共分为4种,强弱软徐强引用直接使用new创建的对象。当触发GC时,只要是垃圾就回收软引用当触发GC时,与是否是垃圾对象无关,意味着不管是不是垃圾对象都不会被回收,只有当内存不足时才回收(内存缓存场景)Objectobj=newObject();SoftReference<Object>sf=newSoftReferenc......
  • Java异步同步回调
    同步回调:打印结果:123publicinterfaceResult{voidcallBack();}publicstaticvoidmain(String[]args)throwsInterruptedException{Entityentity=newEntity();entity.task(()->System.out.println("2")......
  • java 如何判断对象是否是垃圾
    引用计数法给对象添加一个引用计数器,当对象增加一个引用时计数器加1,引用失效时计数器减1。引用计数为0的对象就是垃圾可被回收比如a线程中某个栈帧使用某个对象,这个对象的引用计数器+1,调用结束,引用计数器-1这个方法实现简单,效率高,但是并不可取,当循环引用时,引用计数器永......
  • android:keytool生成应用签名证书(java 15)
    一,查看是否已安装keytoolkeytool命令的程序位于jdk的安装目录/bin下,1,查看是否有keytool命令已安装?[lhdop@blog~]$ls/usr/local/soft/jdk-17/bin/keytool/usr/local/soft/jdk-17/bin/keytool2,查看帮助:列出可用的命令[lhdop@blog~]$keytool--helpKeyandCert......
  • 在 Java 中重采样音频
    在我的一个项目中,我需要将PCM音频数据重新采样为不同的采样率。我正在使用javax.sound.sampled.AudioSystem来完成这项任务。重新采样似乎会在帧的开头和结尾添加额外的样本。下面是一个最小的工作示例......