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.  
    }

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

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

      package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

  2. JAVA中循环遍历list有三种方式

    转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常 ...

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

    在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法.entity(实体类)的作用一般是和数据表做映射.所以快速写出规范的e ...

  4. JAVA 中 Map 与实体类相互转换的简单方法

    1. 在 pom.xml 中引入依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId> ...

  5. java遍历实体类的属性和数据类型以及属性值

    遍历实体类的树形和数据类型一级属性值 /** * 遍历实体类的属性和数据类型以及属性值 * @param model * @throws NoSuchMethodException * @throws ...

  6. Java中循环删除list中元素的方法总结

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区.下面我们来一起看一下. Java中循环遍 ...

  7. JAVA中循环删除list中元素的方法总结【转】

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...

  8. JAVA中循环删除list中元素

    文章来源: https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环) ...

  9. JAVA中循环删除list中元素的方法总结(同上篇)

    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...

随机推荐

  1. .NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?(转)

    .NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?  后端开发  作者: Rector  1973 阅读  0 评论  0 收藏  收藏本文 ...

  2. MongoDB基本信息

    一.MongoDB简介 来源:在2007年,由纽约一个叫10gen的创业团队开发,公司现在叫做MongoDB Inc,最初被开发为PAAS(平台即服务). 数据库类型:基于分布式文件存储的数据库.由C ...

  3. Sublime text 替换成对标签 首尾匹配的HTML 标签

    按Cmd-Shift-K (Win: Ctrl-Shift-') 就能选中这组标签

  4. CentOS 7 Nginx1.12.2平滑升级到新版本nginx-1.13.3

    查看当前Nginx版本信息 [root@web ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/ built by gcc (Red H ...

  5. 极致21点开发DAY3

    今天完成的主要任务是活动窗口的显示与关闭,以及领取金币的逻辑.用到了数据持久化技术.我想记录的主要是领取金币的逻辑. 领取金币算法:如果今天没有领取金币,即可领取,否则什么都不做. 一句话描述足矣,但 ...

  6. 04-python3.5-模拟三级菜单-省-县-区域--01

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:XZ data = { '北京':{ "昌平":{ "沙河&qu ...

  7. Winform 图片预览列表+分页显示

    针对图片列表展示信息,一开始没有做过相关类似的功能,大多都是以表格行显示为主,所以刚开始实现这个功能的时候是懵逼的.无从下口.在网上搜索一时半会也没找到合适的解决方案.大致就是类似于下图这样,每条数据 ...

  8. mysql的group_concat列转行函数

    SELECT auditor,sum(count) total, GROUP_CONCAT(type,'=', count) AS type_count FROM auditor_dm_ol GROU ...

  9. coredump文件抓取设置

    ulimit -c unlimitedecho 1 > /proc/sys/kernel/core_uses_pidecho "/tmp/core-%e-%s-%u-%g-%p-%t& ...

  10. Win7 指定以某个用户运行某个程式

    登陆的是用户A,想要以用户B执行某个程式,可以在cmd命令符下执行以下语句 runas /user:Domain\UserB  /savecred notepad.exe 说明:/user:的后面即为 ...