精华内容
下载资源
问答
  • //将origin属性注入到destination中 public <T> void mergeObject(T origin, T destination) { if (origin == null || destination == null) return; if (!origin.getClass().equals...

    //将origin属性注入到destination中 public <T> void mergeObject(T origin, T destination) { if (origin == null || destination == null) return; if (!origin.getClass().equals(destination.getClass())) return; Field[] fields = origin.getClass().getDeclaredFields(); for (int i = 0; i < fields.length; i++) { try { fields[i].setAccessible(true); Object value = fields[i].get(origin); if (null != value) { fields[i].set(destination, value); } fields[i].setAccessible(false); } catch (Exception e) { } } }

      以上是赋值给同类对象,下面是赋值给非同类的对象的同名属性例子

    package test.test;
    
    import java.lang.reflect.Field;
    
    class Temp{
        String a = null;
        String b = null;
        String c = null;
    }
    
    class Temp2{
        String a = null;
    }
    
    public class Test3 {
    
        public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
            // TODO Auto-generated method stub
            Temp t1 = new Temp();
            t1.a ="value a";
            Temp t2 = new Temp();
            t2.b = "value b";
            Temp2 t3 = new Temp2();
            
            Field[] fields = t1.getClass().getDeclaredFields();
            
            
            Field[] fields2 = t3.getClass().getDeclaredFields();
            for(int i=0;i<fields.length;i++)
                if(fields[i].getName().equals(fields2[0].getName())){
                    fields2[0].set(t3, fields[i].get(t1));
                }
            System.out.println(t3.a);
    
        }
    
    }

     

    展开全文
  • 今天技术之家陪你一起了解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

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

    展开全文
  • java遍历一个对象的所有属性

    万次阅读 2018-11-06 17:14:25
    java遍历一个对象的所有属性

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    本文转载自(http://www.cnblogs.com/137913828S2/archive/2012/07/10/2584774.html)

    java中遍历实体类属性和类型,属性值

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
            Field[] field = model.getClass().getDeclaredFields();        //获取实体类的所有属性,返回Field数组  
            for(int j=0 ; j<field.length ; j++){     //遍历所有属性
                    String name = field[j].getName();    //获取属性的名字
                    
                    System.out.println("attribute name:"+name);     
                    name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
                    String type = field[j].getGenericType().toString();    //获取属性的类型
                    if(type.equals("class java.lang.String")){   //如果type是类类型,则前面包含"class ",后面跟类名
                        Method m = model.getClass().getMethod("get"+name);
                        String value = (String) m.invoke(model);    //调用getter方法获取属性值
                        if(value != null){

                            System.out.println("attribute value:"+value);
                        }
                    }
                    if(type.equals("class java.lang.Integer")){     
                        Method m = model.getClass().getMethod("get"+name);
                        Integer value = (Integer) m.invoke(model);
                        if(value != null){
                            System.out.println("attribute value:"+value);
                        }
                    }
                    if(type.equals("class java.lang.Short")){     
                        Method m = model.getClass().getMethod("get"+name);
                        Short value = (Short) m.invoke(model);
                        if(value != null){
                            System.out.println("attribute value:"+value);                    }
                    }       
                    if(type.equals("class java.lang.Double")){     
                        Method m = model.getClass().getMethod("get"+name);
                        Double value = (Double) m.invoke(model);
                        if(value != null){                    
                            System.out.println("attribute value:"+value);  
                        }
                    }                  
                    if(type.equals("class java.lang.Boolean")){
                        Method m = model.getClass().getMethod("get"+name);    
                        Boolean value = (Boolean) m.invoke(model);
                        if(value != null){                      
                            System.out.println("attribute value:"+value);
                        }
                    }
                    if(type.equals("class java.util.Date")){
                        Method m = model.getClass().getMethod("get"+name);                    
                        Date value = (Date) m.invoke(model);
                        if(value != null){
                            System.out.println("attribute value:"+value.toLocaleString());
                        }
                    }                
                }
        }

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 要获取对象的所有属性可以使用getDeclaredFields()方法会返回一个Field数组遍历这个数组几个遍历所有属性注意使用这个方法会抛出4个异常然后根据属性的类型选择执行对应的内容public static void eachProperties...

    要获取对象的所有属性可以使用getDeclaredFields()

    方法会返回一个Field数组

    遍历这个数组几个遍历所有属性

    注意使用这个方法会抛出4个异常

    然后根据属性的类型选择执行对应的内容

    public static void eachProperties(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{

    Field[] field = model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组

    for(int j=0 ; j

    String name = field[j].getName(); //获取属性的名字

    System.out.println("attribute name:"+name);

    name = name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法

    String type = field[j].getGenericType().toString(); //获取属性的类型

    if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名

    ...

    }

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

    ...

    }

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

    ...

    }

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

    ...

    }

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

    ...

    }

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

    ...

    }

    }

    }

    具体执行的内容就是重点了

    我们知道模型的属性都会有对应的getter和setter方法

    只需要得到对应的getter和setter方法即可获取和设置属性

    这里就需要用到getMethod方法

    获得getter方法

    方法有分带参数和不带参数,我们知道getter方法是不带参数的

    获得getter方法如下

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

    获得setter方法

    如果是带参数的setter方法,就应该把参数的类型做封装成一个Class>泛型数组传入getMethod方法的第二个参数

    例如参数是String类型的setter方法如下

    Method m = model.getClass().getMethod("set"+name, new Class[] {String.class});

    执行getter方法

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

    执行setter方法

    m.invoke(model,new Object[] {new String("new value")});

    from: http://zhenhappy.github.io/2015/10/26/Java/Java-Each-Properties/

    展开全文
  • 本文是Java反射的一个常见的案例,常见的情况是,给到一个对象,需要把对象的每个属性和值重新生成一个Map或者Array,这个时候就是要要到反射啦,不多说,上干货: public static ArrayList&lt;NameValuePair&...
  • Java反射 1、创建缓存池,可以加快访问速度 private static final Map&lt;String, List&lt;Field&...2、获取实体类所有属性,返回Field列表 private List&lt;Field&gt; getFiel...
  • Java遍历对象所有属性

    万次阅读 2018-04-18 19:30:52
    要获取对象的所有属性可以使用getDeclaredFields()方法会返回一个Field数组遍历这个数组几个遍历所有属性注意使用这个方法会抛出4个异常然后根据属性的类型选择执行对应的内容public static void eachProperties...
  • 最近想再深入的学习一下Mybatis框架,在学习过程中,很多时候需要遍历和打印结果集对象的属性,来判断方法执行的结果是否正确。由于有多个Java Bean,所以每次遍历的时候都要重新写一个方法来打印对应的java Bean的...
  • 该博文针对有些时候我们手里有一个Bean对象,想要遍历它的每一个属性,并对其进行操作的...首先我们有一个实体类对象rrdData,我们的目的是遍历它的所有属性,获取它的属性类型、属性名称、属性值并调用它的getter和...
  • 当遇到一个JSON格式的对象时,不知道它有多少个属性,也不知道有什么属性,该如何遍历的属性及其属性值呢??? 还是使用Java语言还是很像的,使用for语句。 var obj = data[i]; for(var p in obj){ alert...
  • 如下所示:Java实体对象中有如下一个属性 /** * 系统员工ID集合(批量修改登录时间用) */ private long[] sysEmpIds; 则对应配置文件为(配置中<foreach>标签): <update id=...
  • 那么今天就为大家介绍一下java中some(),every()循环遍历,Object.getOwnPropertyNames()遍历对象的属性起来看看吧。首先说一下,some(),every()循环遍历,统计数组是否满足某个条件 。这两方法类似“断言”...
  • Java遍历Object的属性和属性值,并以String形式返回||toString()一个对象Object||将一个对象转化为字符串String1.关注每个属性组 //用List, String>> mapList 和 List都可以,最后toString一样都是ok的 String to...
  • 如何遍历java对象属性

    2020-04-30 17:57:43
    使用场景 后台接收客户端传过来的值,经过相应的处理和操作,对数据库进行CURD操作。我们通常直接获取json对象,或创建一个dto对象映射json对象,并将值插入到固定的地方。...获取对象的所有属性 Field[] field =...
  • Java语言怎么实现对类对象的属性字的一个遍历取值的操作呢,写不出来
  • Java遍历数组对象的方式

    千次阅读 2015-08-30 10:41:07
    本人总结有三:估计还有很多,只是感觉这几个比较常用而已!...,这样是在堆空间里面创建一个Student空间里面存放各种属性,而stu[0]储存是指向这个空间的一个地址。所以遍历出来就是这个地址;又如Stu
  • 本示例中又三个对象嵌套: UserBO:复杂对象,其中一个属性是List&lt;AddressBO&gt;或者Map&lt;AddressBO&gt; AddressBO:其中一个属性是SubAddressBO SubAddressBO:包含目标属性addrId,且是...
  • System.out.println("该类内部变量有:"+ f.getName()); 10 } 11 for ( Method m : methods ) { 12 System.out.println("该类方法有:"+ m.getName()); 13 }   转载于:...
  • 在利用递归遍历获取Java复杂对象(对象的属性仍是对象//list/map)中指定属性的值(一)中我写了递归遍历复杂对象中目标属性,找到第一个目标属性则退出遍历。现在有遇到要遍历复杂对象中所有目标属性的值。且指定了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 425
精华内容 170
关键字:

java遍历一个对象的属性

java 订阅