有些时候我们需要一个类中的所有属性信息,在类属性少的情况下我们可以一个一个的通过get和set获得,但是如果多了的话就比较麻烦了,在这里我们可以通过反射来遍历。

public void getAlixIntegrity(ApplyCust applyCust) throws NoSuchMethodException, Exception{// 获取实体类的所有属性,返回Field数组  Field[] field = applyCust.getClass().getDeclaredFields();  // 遍历所有属性  for (int j = 0; j < field.length; j++) {  // 获取属性的名字  String name = field[j].getName();  // 将属性的首字符大写,方便构造get,set方法  name = name.substring(0, 1).toUpperCase() + name.substring(1);  // 获取属性的类型  String type = field[j].getGenericType().toString();  // 如果type是类类型,则前面包含"class ",后面跟类名  //System.out.println("属性为:" + name);  if (type.equals("class java.lang.String")) {  Method m = applyCust.getClass().getMethod("get" + name);  // 调用getter方法获取属性值  String value = (String) m.invoke(applyCust);  //System.out.println("数据类型为:String");  if (value != null || value == "") {  //System.out.println("属性值为:" + value);  } else {  //System.out.println("属性值为:空");  nullCount ++;}  }  if (type.equals("class java.lang.Integer")) {  Method m = applyCust.getClass().getMethod("get" + name);  Integer value = (Integer) m.invoke(applyCust);  //System.out.println("数据类型为:Integer");  if (value != null) {  //System.out.println("属性值为:" + value);  } else {  //System.out.println("属性值为:空");  nullCount ++;}  }  if (type.equals("class java.lang.Long")) {  Method m = applyCust.getClass().getMethod("get" + name);  Long value = (Long) m.invoke(applyCust);  //System.out.println("数据类型为:Long");  if (value != null) {  //System.out.println("属性值为:" + value);  } else {  //System.out.println("属性值为:空");  nullCount ++;}  }  if (type.equals("class java.lang.Double")) {  Method m = applyCust.getClass().getMethod("get" + name);  Double value = (Double) m.invoke(applyCust);  //System.out.println("数据类型为:Double");  if (value != null) {  //System.out.println("属性值为:" + value);  } else {  //System.out.println("属性值为:空");  nullCount ++;}  }  if (type.equals("class java.util.Date")) {  Method m = applyCust.getClass().getMethod("get" + name);  Date value = (Date) m.invoke(applyCust);  //System.out.println("数据类型为:Date");  if (value != null) {  //System.out.println("属性值为:" + value);  } else {  //System.out.println("属性值为:空"); nullCount ++;}  }  } tatolCount = field.length;integrity = (tatolCount - nullCount) * 1.0 / tatolCount;return integrity;}

这样有什么类型就都可以遍历了。

java中遍历类中的属性和属性值相关推荐

  1. java循环遍历类属性_java循环遍历类属性 get 和set值方法

    //遍历sqspb类 成员为String类型 属性为空的全部替换为"/" Field[] fields = sqspb.getClass().getDeclaredFields() ...

  2. java遍历类中所有字段

    代码: //遍历类中所有字段信息 https://blog.csdn.net/weixin_34346099/article/details/94036015public static void re ...

  3. php遍历中记录所有,php遍历类中包含的所有元素的方法

    这篇文章主要介绍了php遍历类中包含的所有元素的方法,涉及php中getConstants方法及数组操作的相关技巧,需要的朋友可以参考下 本文实例讲述了php遍历类中包含的所有元素的方法.分享给大家供 ...

  4. idea中查看类中所有方法列表(Alt+7)(亲测)

    idea中查看类中所有方法列表 当我们在开发中,或者在读别人代码时,如何能快速定位到想看的方法: 我们以activiti中的RepositoryService为例,如下图,RepositoryServ ...

  5. C++中若类中没有默认构造函数,如何使用对象数组

    前言: 如果定义一个类,有其默认的构造函数,则使用new动态实例化一个对象数组,不是件难事,如下代码: 1 #include <memory> 2 #include <iostrea ...

  6. python中同一个类中方法之间的变量怎么调用

    class A:A = "你好"def test_a(self):self.m = "hello" #实例变量def test_b(self):self.tes ...

  7. C++中模板类中的成员函数以及模板函数在类外定义

    在C++中,类中的成员函数可以在类外完成定义,从而显得类中的成员函数看起来简洁明了.但是模板类里的成员函数和模板函数与普通的成员函数在类外定义不同. 先定义一个模板类以及成员函数和模板函数: 接下我们 ...

  8. C#中File类中文件的读取写入

    C#中File类中文件的读取写入 注意:使用File读取写入文件非常简单,但FIle的操作方式决定只能读取小文件,读写时全部加载进行读取.读写大文件时建议使用文件流. 常用方法 //获取所有编码方式 ...

  9. java可以在类中直接定义语句_基于javac实现的编译时注解

    很多同学都知道jdk中有一个很重要的jar : tools.jar,但是 很少有人知道这个包里面究竟有哪些好玩的东西. javac入口及编译过程 在使用javac命令去编译源文件时,实际上是去执行co ...

最新文章

  1. 用c语言实现的几个小项目
  2. MySQL有关Group By的优化
  3. Linux hostname指令
  4. 了解Logstash输入插件
  5. Nexus:一站式私有仓库管理(NuGet、Maven、npm、Docker)
  6. ENVI5.3安装教程|带资源
  7. python如何表示坐标_python – 如何制作x坐标字母?
  8. Jmeter使用之高效组织接口自动化用例技巧
  9. mysql数据库BigInt数据类型和实体对象中BigInteger,Long类型的冲突
  10. jetCache使用
  11. opencv获得图片的像素宽度_OpenCV中获取图像某一像素值
  12. mysql数据库双机备份_MySQL数据库本地备份和双机相互备份
  13. 绕开华为通道,获取解锁码解锁BootLoader
  14. tooltips被遮盖
  15. odoo15 tree kanban顺序调整,显示及打开顺序
  16. python泰坦尼克号数据预测_泰坦尼克号幸存者预测 python 详解
  17. SpringBoot 中dependencies飘红
  18. Ruby/Rails学习教程-Hello Ruby
  19. vue 后台翻译_vue前端vue-i18n实现翻译功能
  20. 三步制作一张业务数据地图

热门文章

  1. 通达信macd底背驰代码
  2. ZStack-ZCCE考题参考答案
  3. 广州联通用户开通GPRS上网流量包月如意通上网王本地王
  4. Java8使用stream操作两个list根据某字段匹配再对其中一个list进行赋值
  5. 中南民族大学计算机科学学院袁磊,刘晶 - 中南民族大学 - 计算机科学学院
  6. 6410修改键盘驱动 自定义6*5矩阵键盘
  7. python画玫瑰花带名字_Python 画一朵玫瑰给你
  8. iOS 14.2 Beta为Control Center添加了新的Shazam音乐识别功能
  9. klouderr什么意思_cheerful是什么意思_cheerful的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. .NETFramework