java中循环遍历实体类的属性和数据类型以及属性值

package com.walkerjava.test;

 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Date;

 /***
  * 遍历实体类的属性和数据类型以及属性值
  *
  * @author LiBaozhen
  * @date 2013-1-4 上午10:25:02
  * @company
  * @version v1.3
  * @see 相关类
  * @since 相关/版本
  */
 public class ReflectTest {
         public static void reflectTest(Object model) throws NoSuchMethodException,
                         IllegalAccessException, IllegalArgumentException,
                         InvocationTargetException {
                 // 获取实体类的所有属性,返回Field数组
                 Field[] field = model.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 = model.getClass().getMethod("get" + name);
                                 // 调用getter方法获取属性值
                                 String value = (String) m.invoke(model);
                                 System.out.println("数据类型为:String");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                         if (type.equals("class java.lang.Integer")) {
                                 Method m = model.getClass().getMethod("get" + name);
                                 Integer value = (Integer) m.invoke(model);
                                 System.out.println("数据类型为:Integer");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                         if (type.equals("class java.lang.Short")) {
                                 Method m = model.getClass().getMethod("get" + name);
                                 Short value = (Short) m.invoke(model);
                                 System.out.println("数据类型为:Short");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                         if (type.equals("class java.lang.Double")) {
                                 Method m = model.getClass().getMethod("get" + name);
                                 Double value = (Double) m.invoke(model);
                                 System.out.println("数据类型为:Double");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                         if (type.equals("class java.lang.Boolean")) {
                                 Method m = model.getClass().getMethod("get" + name);
                                 Boolean value = (Boolean) m.invoke(model);
                                 System.out.println("数据类型为:Boolean");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                         if (type.equals("class java.util.Date")) {
                                 Method m = model.getClass().getMethod("get" + name);
                                 Date value = (Date) m.invoke(model);
                                 System.out.println("数据类型为:Date");
                                 if (value != null) {
                                         System.out.println("属性值为:" + value);
                                 } else {
                                         System.out.println("属性值为:空");
                                 }
                         }
                 }
         }
 }

  

http://blog.csdn.net/dongzhouzhou/article/details/8659836

  1. package com.walkerjava.test;
  2.  

  3.  

    import java.lang.reflect.Field;

  4.  

    import java.lang.reflect.InvocationTargetException;

  5.  

    import java.lang.reflect.Method;

  6.  

    import java.util.Date;

  7.  

  8.  

    /***

  9.  

    * 遍历实体类的属性和数据类型以及属性值

  10.  

    *

  11.  

    * @author LiBaozhen

  12.  

    * @date 2013-1-4 上午10:25:02

  13.  

    * @company

  14.  

    * @version v1.3

  15.  

    * @see 相关类

  16.  

    * @since 相关/版本

  17.  

    */

  18.  

    public class ReflectTest {

  19.  

    public static void reflectTest(Object model) throws NoSuchMethodException,

  20.  

    IllegalAccessException, IllegalArgumentException,

  21.  

    InvocationTargetException {

  22.  

    // 获取实体类的所有属性,返回Field数组

  23.  

    Field[] field = model.getClass().getDeclaredFields();

  24.  

    // 遍历所有属性

  25.  

    for (int j = 0; j < field.length; j++) {

  26.  

    // 获取属性的名字

  27.  

    String name = field[j].getName();

  28.  

    // 将属性的首字符大写,方便构造get,set方法

  29.  

    name = name.substring(0, 1).toUpperCase() + name.substring(1);

  30.  

    // 获取属性的类型

  31.  

    String type = field[j].getGenericType().toString();

  32.  

    // 如果type是类类型,则前面包含"class ",后面跟类名

  33.  

    System.out.println("属性为:" + name);

  34.  

    if (type.equals("class java.lang.String")) {

  35.  

    Method m = model.getClass().getMethod("get" + name);

  36.  

    // 调用getter方法获取属性值

  37.  

    String value = (String) m.invoke(model);

  38.  

    System.out.println("数据类型为:String");

  39.  

    if (value != null) {

  40.  

    System.out.println("属性值为:" + value);

  41.  

    } else {

  42.  

    System.out.println("属性值为:空");

  43.  

    }

  44.  

    }

  45.  

    if (type.equals("class java.lang.Integer")) {

  46.  

    Method m = model.getClass().getMethod("get" + name);

  47.  

    Integer value = (Integer) m.invoke(model);

  48.  

    System.out.println("数据类型为:Integer");

  49.  

    if (value != null) {

  50.  

    System.out.println("属性值为:" + value);

  51.  

    } else {

  52.  

    System.out.println("属性值为:空");

  53.  

    }

  54.  

    }

  55.  

    if (type.equals("class java.lang.Short")) {

  56.  

    Method m = model.getClass().getMethod("get" + name);

  57.  

    Short value = (Short) m.invoke(model);

  58.  

    System.out.println("数据类型为:Short");

  59.  

    if (value != null) {

  60.  

    System.out.println("属性值为:" + value);

  61.  

    } else {

  62.  

    System.out.println("属性值为:空");

  63.  

    }

  64.  

    }

  65.  

    if (type.equals("class java.lang.Double")) {

  66.  

    Method m = model.getClass().getMethod("get" + name);

  67.  

    Double value = (Double) m.invoke(model);

  68.  

    System.out.println("数据类型为:Double");

  69.  

    if (value != null) {

  70.  

    System.out.println("属性值为:" + value);

  71.  

    } else {

  72.  

    System.out.println("属性值为:空");

  73.  

    }

  74.  

    }

  75.  

    if (type.equals("class java.lang.Boolean")) {

  76.  

    Method m = model.getClass().getMethod("get" + name);

  77.  

    Boolean value = (Boolean) m.invoke(model);

  78.  

    System.out.println("数据类型为:Boolean");

  79.  

    if (value != null) {

  80.  

    System.out.println("属性值为:" + value);

  81.  

    } else {

  82.  

    System.out.println("属性值为:空");

  83.  

    }

  84.  

    }

  85.  

    if (type.equals("class java.util.Date")) {

  86.  

    Method m = model.getClass().getMethod("get" + name);

  87.  

    Date value = (Date) m.invoke(model);

  88.  

    System.out.println("数据类型为:Date");

  89.  

    if (value != null) {

  90.  

    System.out.println("属性值为:" + value);

  91.  

    } else {

  92.  

    System.out.println("属性值为:空");

  93.  

    }

  94.  

    }

  95.  

    }

  96.  

    }

  97.  

    }

原文地址:https://www.cnblogs.com/achengmu/p/10260670.html

时间: 2024-10-27 04:00:08

java中循环遍历实体类的属性和数据类型以及属性值的相关文章

java中如何遍历实体类的属性和数据类型以及属性值

1 package com.walkerjava.test; 2 3 import java.lang.reflect.Field; 4 import java.lang.reflect.InvocationTargetException; 5 import java.lang.reflect.Method; 6 import java.util.Date; 7 8 /*** 9 * 遍历实体类的属性和数据类型以及属性值 10 * 11 * @author LiBaozhen 12 * @dat

Java中entity(实体类)的写法规范

在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法.entity(实体类)的作用一般是和数据表做映射.所以快速写出规范的entity(实体类)是java开发中一项必不可少的技能. 在项目中写实体类一般遵循下面的规范: 1.根据你的设计,定义一组你需要的私有属性. 2.根据这些属性,创建它们的setter和getter方法.(eclipse等集成开发软件可以自动生成.具体怎么生成?请自行百度.) 3.提供带参数的构造器和

JAVA中 Map转换实体类对象简单实现 JSON

原文链接:https://blog.csdn.net/qq_23140197/article/details/86503875   (侵删) 开发的过程中往往依赖的表过多直接按Map来传递数值,某些场景需要把Map转换为实体类,这里贴一个最简洁的方法,依赖阿里的FastJSon. maven引入 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>

java中循环遍历删除List和Set集合中元素的方法

今天一个网友问我集合忘记了没有,这一问让我纠结了一下,最后决定把这个集合问题写下来,以免自己在犯下类似的问题: 需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常:ConcurrentModificationException为了以后不会忘记,和也给遇到同样问题的同事提供一个参考: 出现错误的代码如下所示: package set; import java.util.HashSet; import java.util.Iterator; import java.u

JAVA中循环删除list中元素的方法总结

印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末.看总结.. JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")

JAVA中循环删除list中元素的方法总结(跳格删除问题解决)(转)

印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末.看总结.. JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")

Java中遍历实体类(处理MongoDB)

在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历: 1 //java中遍历实体类,获取属性名和属性值 2 public static void testReflect(Object model) throws Exception{ 3 for (Field field : model.getClass().getDeclaredFields())

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

转!! Java中如何遍历Map对象的4种方法

在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. [java] view