精华内容
下载资源
问答
  • import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Date;/**** 遍历实体类属性和数据类型以及属性值** @author L...

    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

    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("属性值为:空");

    }

    }

    }

    }

    }

    展开全文
  • 展开全部可以通过反射获取到属性方法信息:publicclassUser{privateintid;privateStringname;privatedoubleamount;publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){return...

    展开全部

    可以通过反射获取到属性方法信息:public class User {

    private int id;

    private String name;

    private double amount;

    public int getId() {

    return id;

    }

    public void setId(int id) {

    this.id = id;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public double getAmount() {

    return amount;

    }

    public void setAmount(double amount) {

    this.amount = amount;

    }

    }

    获取类信息:import java.lang.reflect.Field;

    import java.lang.reflect.Method;

    import java.lang.reflect.Parameter;

    public class ReflectDemo {

    public static void main(String[] args) {

    Class clz = User.class;

    // 获取所有自己定义的属性(不包含从Object继承的,如果需要可使用32313133353236313431303231363533e59b9ee7ad9431333365653935getFields()方法)

    Field[] fields = clz.getDeclaredFields();

    for (Field f : fields) {

    System.out.println("属性名称:" + f.getName() + ",属性类型:" + f.getType().getName());

    }

    // 获取所有自己定义的方法(同样不包含继承的)

    Method[] methods = clz.getDeclaredMethods();

    for (Method m : methods) {

    System.out.println("方法名称:" + m.getName());

    System.out.println("返回值类型:" + m.getReturnType().getName());

    // 获取方法的所有参数

    Parameter[] parameters = m.getParameters();

    for (Parameter p : parameters) {

    System.out.println("参数类型:" + p.getType().getName());

    }

    System.out.println("==========================================");

    }

    }

    }

    展开全文
  • //遍历所有属性 for (int i = 0; i ; i++) { String type = field[i].getGenericType().toString(); //BigDecimal类型 if(type.equals("class java.math.BigDecimal")){ //获取属性的名字 String name = field[i]....

    import http://www.doczj.com/doc/82f2fb5228ea81c758f578f8.htmlng.reflect.Field;

    import http://www.doczj.com/doc/82f2fb5228ea81c758f578f8.htmlng.reflect.Method;

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

    //遍历所有属性

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

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

    //BigDecimal类型

    if(type.equals("class java.math.BigDecimal")){

    //获取属性的名字

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

    //将属性名的第一位字母大写

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

    try{

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

    Method getOrSet = zrEntNetBaseinfo.getClass().getMethod("get" + name);

    Object value = getOrSet.invoke(javaBean);

    if(value == null){

    //调用setter方法设属性值

    Class[] parameterTypes = new Class[1];

    parameterTypes[0] = field[i].getType();

    getOrSet = javaBean.getClass().getDeclaredMethod("set" + name,parameterTypes);

    BigDecimal bigType = new BigDecimal("0");

    Object[] obj = new Object[1];

    obj[0] = bigType;

    getOrSet.invoke(javaBean,obj);

    }

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    展开全文
  • 今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化:Java反射1、创建缓存池,可以加快访问速度privatestaticfinalMap>CACHE=newHashMap>();2、获取实体类的所有属性,返回Field列表...

    今天技术之家陪你一起了解java开发中遍历一个对象的所有属性并set值 缓存优化:

    Java反射

    1、创建缓存池,可以加快访问速度private static final Map> CACHE = new HashMap>();

    2、获取实体类的所有属性,返回Field列表private List getFieldOfClass(Class> clazz) {

    List fields = CACHE.get(clazz.getName());

    if (fields == null) {

    Field[] fieldArr = clazz.getDeclaredFields();

    fields = new ArrayList(fieldArr.length);

    for (Field each : fieldArr) {

    each.setAccessible(true);

    fields.add(each);

    }

    CACHE.put(clazz.getName(), fields);

    }

    return fields;

    }

    3、为对象设置值public  T setObjVal(T obj) {

    if (obj == null) {

    return null;

    }

    List fields = getFieldOfClass(obj.getClass());

    for (int j = 0, size = fields.size(); j 

    try {

    // 获取属性的名字

    Field each = fields.get(j);

    //为set方法set值

    each.set(obj, "参数值");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    return obj;

    }

    技术之家希望本篇文章对你有用!!

    欢迎来到技术之家,

    如需转载,烦请保留本文链接和出处:http://www.jszja.com/contents/14/1443.html

    您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)

    展开全文
  • 很多时候我们在项目中并不会知道传过来的一个对象的真实类型,自然也无法使用这个类型的get方法获取这个传过来的对象的属性属性对应的值,当时我们使用反射则可以方便的获取传递过来的未知类对象的所有的属性(包含...
  • java遍历一个对象的所有属性

    万次阅读 2013-04-13 11:32:39
    本文转载自... java遍历实体类属性和类型,属性值 public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessExcept
  • Java反射 1、创建缓存池,可以加快访问速度 private static final Map&lt;String, List&lt;Field&...2、获取实体类的所有属性,返回Field列表 private List&lt;Field&gt; getFiel...
  • 该博文针对有些时候我们手里有一个Bean对象,想要遍历它的每一个属性,并对其进行操作的...首先我们有一个实体类对象rrdData,我们的目的是遍历它的所有属性,获取它的属性类型、属性名称、属性值并调用它的getter和...
  • 遍历处理JsonObject的内容

    千次阅读 2019-08-31 17:53:40
    JsonObject的处理(其中value为实某一...遍历实体类属性4. Java创建对象实例的三种方法1.new2.clone3.newInstance遍历JsonObject 的内容 ) 目标 遍历jsonObject中value,value为已实例化的实体类;并载入该实体类...
  • 需求: 前人写的上传生成PDF,标题没有显示完全有null显示在上面 问题: ... 对实体类属性遍历,对所有为空的属性,赋值为空字符串 Code: //实体类 TestUtil test = new TestUtil(); test.setI...
  • 虽然可以自己遍历list给Excel赋值添加生成Excel数据,...所有我们需要自动识别实体类导出Excel 我们导入jar包 maven的pom.xml &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/group...
  • 对不清楚Java8新特性的朋友来说,你可能会遍历数组对对象属性进行操作判断,然后在创建几个List对象去存储分组后的对象,这可能需要十几行代码。 然而今天,我们来学习一下Java8的其中一个新特性:集合的流式编程,...
  • 一、Java中的 File

    2020-02-16 16:14:36
    目录 ...为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中,这些文件可以移动、传输,亦可以被其他程序使用,Java中为我们提供了一个专门用于操作文件和文件夹的实体类Fi...
  • 如今想起需要对某一个实体类进行属性遍历操作。觉得应用可以使用。​实际应用场景:从数据库中获取得到了一个对象,该对象并非所有属性都有值,只需要挑选出有值的属性置入Map中,使用该Map返回给http接口前端调用!...
  •  8.5.5 遍历对象图  8.6 小结  8.7 思考题 第9章 通过Hibernate操纵对象(下)  9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1...
  •  8.5.5 遍历对象图  8.6 小结  8.7 思考题 第9章 通过Hibernate操纵对象(下)  9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1...
  •  8.5.5 遍历对象图  8.6 小结  8.7 思考题 第9章 通过Hibernate操纵对象(下)  9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1...
  •  8.5.5 遍历对象图  8.6 小结  8.7 思考题 第9章 通过Hibernate操纵对象(下)  9.1 与触发器协同工作  9.2 利用拦截器(Interceptor)生成审计日志  9.3 Hibernate的事件处理机制  9.4 批量处理数据  9.4.1...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D java.awt.im 提供输入方法框架所需的和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的...
  • java反射机制

    2015-09-23 00:42:11
    //反射是在运行过程中 对任意一个类获知其属性 属性值 以及方法并掉用这个方法 举个栗子 遍历对象属性属性值 //简单的举个栗子 //创建一个简单的表实体类 eg public static Users //以下是简单的反射方法public ...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
  • Java生成动态树形图

    2020-09-28 20:02:19
    在jsp表现层中进行树形绑定,加载出树形,配置相关参数,当然也需要...再创建一个实体类,用get和set方法把数据库的表映射到java对象中 然后在servlet控制层中处理post请求方法,然后用for循环获取结果集并转换成json
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
  • 使用JDBC技术从数据库中查询出结果集然后要封装到实体对象中供jsp页面显示,当数据库字段比较多时,遍历起来很麻烦,所以写了如下工具方便使用,注:实体类属性名必须和数据库的字段名一致才可以使用该工具。...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
  • java api最新7.0

    千次下载 热门讨论 2013-10-26 17:34:06
    java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D java.awt.im 提供输入方法框架所需的和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
  • java面试题

    2018-01-01 15:35:15
    抽象类是否可继承实体类(concrete class)? 12 19. heap和stack有什么区别。 13 20. forward 和redirect的区别 13 21. EJB与JAVA BEAN的区别? 13 22. Static Nested Class 和 Inner Class的不同。 13 23. JSP中动态...
  • java 面试题 总结

    2009-09-16 08:45:34
     final 用于声明属性,方法和,分别表示属性不可变,方法不可覆盖,不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object的一个方法,在垃圾收集器执行的时候会调用被回收对象的...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

java遍历实体类对象属性

java 订阅