精华内容
下载资源
问答
  • 对象之间的属性赋值主要通过org.springframework.beans.BeanUtils.copyProperties方法进行对象之间的属性赋值。赋值前提 -- 两个对象要赋值属性名需要保持一致对象赋值# 将source对象赋值给target对象BeanUtils....

    对象之间的属性赋值

    主要通过org.springframework.beans.BeanUtils.copyProperties方法进行对象之间的属性赋值。

    赋值前提 -- 两个对象要赋值的属性名需要保持一致

    对象赋值

    # 将source对象赋值给target对象

    BeanUtils.copyProperties(source, target);

    List之间的对象赋值

    /**

    * @param input 输入集合

    * @param clazz 输出集合类型

    * @param 输入集合类型

    * @param 输出集合类型

    * @return 返回集合

    */

    public static List convertListToList(List input, Class clazz) {

    List output = Lists.newArrayList();

    if (CollectionUtils.isNotEmpty(input)) {

    for (E source : input) {

    T target = BeanUtils.instantiate(clazz);

    BeanUtils.copyProperties(source, target);

    output.add(target);

    }

    }

    return output;

    }

    示例

    有以下三个类,User、Cust、Student:

    @Data

    public class User {

    private String name;

    private String password;

    private String email;

    }

    @Data

    public class Cust {

    private String name;

    private String password;

    private String email;

    private String phone;

    }

    @Data

    public class Student {

    private String name;

    private String password;

    }

    工具类:

    import com.google.common.collect.Lists;

    import org.apache.commons.collections.CollectionUtils;

    import org.springframework.beans.BeanUtils;

    import java.util.List;

    /**

    * @Description: 对象之间进行赋值

    * @Date: 2020/9/25 9:55

    */

    public class AssignmentObject {

    /**

    * 对象属性拷贝

    * 将源对象的属性拷贝到目标对象

    * @param source 源对象

    * @param target 目标对象

    */

    public static void copyProperties(Object source, Object target) {

    BeanUtils.copyProperties(source, target);

    }

    /**

    * @param input 输入集合

    * @param clazz 输出集合类型

    * @param 输入集合类型

    * @param 输出集合类型

    * @return 返回集合

    */

    public static List convertListToList(List input, Class clazz) {

    List output = Lists.newArrayList();

    if (CollectionUtils.isNotEmpty(input)) {

    for (E source : input) {

    T target = BeanUtils.instantiate(clazz);

    BeanUtils.copyProperties(source, target);

    output.add(target);

    }

    }

    return output;

    }

    }

    测试类:分别测试对象之间的属性赋值与List之间的属性赋值

    public class Demo {

    public static void main(String[] args) {

    User user = new User();

    user.setName("admin");

    user.setPassword("admin");

    user.setEmail("123@qq.com");

    System.out.println("user:" + user);

    // 将user的属性分别赋给cust和student

    Cust cust = new Cust();

    AssignmentObject.copyProperties(user, cust);

    System.out.println("cust:" + cust);

    Student student = new Student();

    AssignmentObject.copyProperties(user, student);

    System.out.println("student:" + student);

    User user1 = new User();

    user1.setName("demo");

    user1.setPassword("demo");

    user1.setEmail("demo@qq.com");

    System.out.println("user1:" + user);

    // 将users赋值给List和List

    List users = new ArrayList<>();

    users.add(user);

    users.add(user1);

    System.out.println("users:" + users);

    List custs = AssignmentObject.convertListToList(users, Cust.class);

    System.out.println("custs:" + custs);

    List students = AssignmentObject.convertListToList(users, Student.class);

    System.out.println("students:" + students);

    }

    }

    展开全文
  • 因为 spirngmvc 方法 是可以 为 对象 参数里面 list 属性赋值的。 我也没有看 具体 mvc 源码实现,我这里只是 写一个 简单思路。 通过我这个方式肯定是可以实现。不知道还有没有其他实现...

    其实 这块 大家 去 看 springmvc 源码 肯定可以找到实现办法。 因为 spirngmvc 的方法 是可以 为 对象 参数里面的 list 属性赋值的。 我也没有看 具体的 mvc 源码实现,我这里只是 写一个 简单的思路。 通过我的这个方式肯定是可以的实现的。不知道还有没有其他实现的方式。 因为我百度了好久都没有找到。。。 都是百度 到 简单的反射, 没有涉及到集合的,或者 已经知道集合的类型了。。。

    上例子代码

    public class User {
    
    	public String teString;
    
    	private Integer age;
    
    	private List<Car> cars;

    就是 要通过 反射给 cars  这个 List 集合赋值,在不知道 cars 是什么类型集合的情况下。

    测试使用的 方法

    public class MethodTo {
    
    	public void allCars(User user, Car car, List<Car> cars, ArrayList<Car> alCars, Long a, String[] strs, String str,
    			Long[] numarr, Car[] carArray) {
    		System.out.println("多少车" + cars.size());
    	}
    
    
    
    }
    

     

    我这里是 模拟spirngmvc 的访问 方法, 考虑怎么实现它, 

    比如 User user 作为参数, 怎么 是给 user 里面的 list<car> 赋值进去的?

     

    下面是我的小测试 

    public class Test {
    
    	public static void main(String[] args)
    			throws InstantiationException, IllegalAccessException, ClassNotFoundException {
    		System.out.println(MethodTo.class.getName());
    		System.out.println("方法个数" + MethodTo.class.getMethods().length);
    		for (Method mt : MethodTo.class.getMethods()) {
    			if (mt.getName() != "allCars" && mt.getName() != "testStr") {
    				continue;
    			}
    			
    
    			// 1.8 才有的
    			for (Parameter p : mt.getParameters()) {
    				System.out.println(p.getName());
    			}
    
    			System.out.println("===============");
    			System.out.println("方法名称:" + mt.getName());
    			System.out.println("方法参数的数量:" + mt.getParameterCount());
    			for (Class<?> clz : mt.getParameterTypes()) {
    				System.out.println(clz.getName());
    				if (clz.isArray()) {
    					System.out.println("数组类>>>" + clz.getName());
    					System.out.println(clz.getTypeName());
    					System.out.println(clz.getCanonicalName());
    					System.out.println(clz.getSimpleName());
    					System.out.println(clz.getComponentType());
    					System.out.println("数组类>>>" + clz.getName());
    
    				}
    
    				if (clz.getName().equals(User.class.getName())) {
    					System.out.println(">>>>>>>>>>>>>>>");
    					for (Field f : clz.getFields()) {
    						System.out.println(f.getName() + "==" + f.getType());
    					}
    					System.out.println(">>>>>>>>>>>>>>>");
    					System.out.println("###############");
    					for (Field f : clz.getDeclaredFields()) {
    						// 可以获取 私有的 字段属性
    
    						if (f.getGenericType().getTypeName().equals("java.util.List<com.mytest.reflect.Car>")) {
    							System.out.println(f.getName() + "==" + f.getType());
    							System.out.println(f.getGenericType().getTypeName());
    							// 可以通过 截取出 f.getGenericType().getTypeName() : com.mytest.reflect.Car 就知道集合类型的
    							Class cc = Class.forName("com.mytest.reflect.Car");
    							for (Field fc : cc.getDeclaredFields()) {
    								System.out.println(fc.getName());
    							}
    							Type type = f.getGenericType();
    
    						}
    
    					}
    					System.out.println("###############");
    
    				}
    
    				if (clz.getName() == "java.util.List") {
    					// list
    					// List list = (List) clz.newInstance();
    					// list = new ArrayList<>();
    					// 通过list 赋值给 明细表 字段里面的内容?
    					System.out.println("list里面的 >>>>>");
    					System.out.println(clz.getTypeName());
    					// System.out.println(clz.getDeclaredFields().length);
    					// System.out.println(clz.getFields().length);
    					// System.out.println(clz.getComponentType().getName());
    					// System.out.println(clz.getDeclaredClasses());
    					// System.out.println(clz.getGenericSuperclass().toString());
    					// System.out.println(clz.getSuperclass().toString());
    					System.out.println(clz.getTypeParameters()[0].getTypeName());
    					System.out.println("list里面的 >>>>>");
    				}
    
    			}
    
    
    
    		}
    	}
    
    }
    

     

     

    其实关键就是 这里 

    if (f.getGenericType().getTypeName().equals("java.util.List<com.mytest.reflect.Car>")) {
    							System.out.println(f.getName() + "==" + f.getType());
    							System.out.println(f.getGenericType().getTypeName());
    							// 可以通过 截取出 f.getGenericType().getTypeName() : com.mytest.reflect.Car 就知道集合类型的
    							Class cc = Class.forName("com.mytest.reflect.Car");
    							for (Field fc : cc.getDeclaredFields()) {
    								System.out.println(fc.getName());
    							}
    							Type type = f.getGenericType();
    
    						}

    因为 通过控制台可以看到

     f.getGenericType().getTypeName() 

    的输出内容是 : java.util.List<com.mytest.reflect.Car>

    就可以知道  这个对象里面 有 一个  list 集合属性, 类型是 

    com.mytest.reflect.Car

    这下子  就可以 通过反射   com.mytest.reflect.Car 

    为 car 对象赋值了, 然后 通过 反射 给 这个集合放入 car 对象了。。

    3重方式, 先是 反射方法,获取 参数,  User ,

    反射 user 或者 List<car> , 反射 car

    就可以 了。。。

    具体剩下的实现思路 我觉得大家  真的要 写代码用的话,肯定百度很多了。

    我就懒得写了,我又目前没用到。。。

     

    可以参考 https://www.cnblogs.com/tatame/articles/2417213.html

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://my.oschina.net/ouminzy/blog/1834478

    展开全文
  • 在实际开发当中会出现这样的问题,当你要修改list对象的数据是怎么处理? 首先 创建一个类 public class Test { public int id{ get;set;} public string name{get;set} } 其次 创建Test类型的List ...

    在实际开发当中会出现这样的问题,当你要修改list对象的数据是怎么处理?

    首先 创建一个类

    public class Test

    public int id{ get;set;} 
    public string name{get;set} 
    }   

     

     
    其次 创建Test类型的List
     
    List<Test> li=new List<Test>();

     

    //创建Test对象
    Test t=new Test();

     

    //赋值 第一种方式
    t.id=1; 
    t.name="test"; 
    li.add(t);
     
    //第二种方式
    t=new Test(){id=2,name="lili"};
     
    //第三种方式
    li.add(new Test(){id=3,name="jack"}); 
     
    //第四种方式
    li.add(new Test{id=4,name="poly"});
     
     
     
    //循环List 获取到Test的值

     

    foreach(Test item in li) 
    {
    //修改值 
      item.name="change"; 

     

    name的值被替换为change

    转载于:https://www.cnblogs.com/rdxfreeman/p/5439172.html

    展开全文
  • 介绍了对象之间的赋值,以及List<>对象之间的赋值 public class User { private String name; private Integer age; public User(String name, Integer age) { super(); this.name = name; this.age ...

    介绍了对象之间的赋值,以及List<>对象之间的赋值

    public class User {
    	private String name;
    	private Integer age;
    	public User(String name, Integer age) {
    		super();
    		this.name = name;
    		this.age = age;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Integer getAge() {
    		return age;
    	}
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    }
    
    public class Emp {
    	private String name;
    	private Integer age;
    	private String dept;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Integer getAge() {
    		return age;
    	}
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    	public String getDept() {
    		return dept;
    	}
    	public void setDept(String dept) {
    		this.dept = dept;
    	}
    }
    
    import java.util.Arrays;
    import java.util.List;
    import org.apache.commons.collections4.CollectionUtils;
    import org.springframework.beans.BeansException;
    import com.google.common.collect.Lists;
    import com.uboxol.cloud.util.BeanUtils;
    import lombok.extern.slf4j.Slf4j;
    @Slf4j
    public class HyfUtils {
    	/**
         * 对象属性拷贝
         * 将源对象的属性拷贝到目标对象
         *
         * @param source 源对象
         * @param target 目标对象
         */
        public static void copyProperties(Object source, Object target) {
            try {
                BeanUtils.copyProperties(source, target);
            } catch (BeansException e) {
            	logger.error("BeanUtil property copy  failed :BeansException", e);
            } catch (Exception e) {
            	logger.error("BeanUtil property copy failed:Exception", e);
            }
        }
        
        /**
         * @param input 输入集合
         * @param clzz  输出集合类型
         * @param <E>   输入集合类型
         * @param <T>   输出集合类型
         * @return 返回集合
         */
        public static <E, T> List<T> convertList2List(List<E> input, Class<T> clzz) {
    	    List<T> output = Lists.newArrayList();
    	    if (CollectionUtils.isNotEmpty(input)) {
    	        for (E source : input) {
    	            T target = BeanUtils.instantiate(clzz);
    	            BeanUtils.copyProperties(source, target);
    	            output.add(target);
    	        }
    	    }
    	    return output;
    	}
        
        public static void main(String[] args) {
        	User u = new User("xiaohong",3);
        	User u2 = new User("lili",4);
        	Emp e = new Emp();
        	
        	HyfUtils.copyProperties(u, e);
        	System.out.println(e.getName());
        	List<User> list = Arrays.asList(u,u2);
        	List<Emp> ee = HyfUtils.convertList2List(list, Emp.class);
        	System.out.println(ee.get(1).getName());
    	}
    
    }
    
    展开全文
  • } }else if (type.equals("java.util.List")){// 这里填写的是List对象的全路径 List list=new ArrayList(); OrdOrderDetailSendEmailDto emailDto=new OrdOrderDetailSendEmailDto(); Field[] fieldName = ...
  • 文章目录基本类型赋值复杂类型赋值赋值null自定义对象赋值List对象赋值Map对象赋值 基本类型赋值 使用property标签,本质是调用setter方法赋值。 <beans xmlns="http://www.springframework.org/schema/beans" ...
  • import com.fasterxml.jackson.databind.util.BeanUtil; import org.springframework.beans.BeanUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Test { ...
  • spring集合属性赋值

    千次阅读 2018-01-29 19:53:16
    spring集合属性赋值 第一步:定义我们集合对象 List集合属性赋值 Xml配置 集合属性赋值 -->  bean id="collectionProperty" class="cn.itcast.spring.demo8.CollectionProperty">  property name=...
  • (1)为了不全在applicationContext配置文件写导致说明上麻烦,在这里还是用局部配置文件进行讲解,不想用局部配置文件,完全可以直接将配置写在applicationContext中。&lt;?xml version="1.0" ...
  • list),由于在其函数中调用了list.at(index),所以当listA对象改变时会使得引用而来的list导致索引越界。 2、MapPolyline 中的path 可以用setPath 进行赋值,其参数类型是QGeoPath,但是使用model模式不能...
  • 1.将一个对象的属性值复制给另一个对象 BeanUtils.copyProperties(productInfo,productInfoVO); 2.jdk1.8特性 获取类目type列表 //获取某一属性集合 List<Integer> categoryTypeList = productInfoList....
  • import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import java.util.ArrayList;...import java.util.List; import java.util.UUID; import java.util.stream.Collectors; /** * d...
  • 小程序--给对象属性赋值

    千次阅读 2019-09-26 20:45:23
    小程序中更改data里面值 data: { tel: '15184138787', list: { title: '我是标题哦' } } 1、需求:更改tel值 ...2、需求:更改list里title值; 操作如下: let value = 'list.title'; ...
  • 等号左边是一个ListRes类的对象,这个类里面有个List的成员list。 等号右边是mybatis查询出来一个list。 我问题是,既然右边是查询出一个list,那么等号左边也应该是一个list去接接收。可是现在左边是一个...
  • 小程序中更改data里面值 data: { tel: '15184138787', list: { title: '我是标题哦' } } 1、需求:更改tel值 this.setData({ tel: 15188888888 ...2、需求:更改list里...3、需求:list新增动态属性值 let v
  • 后台返回数据res.data中mcPatientInfoOutput中的属性有一些是我想拿到外边来 再赋给this.tableData if (res.data) { var get = res.data.list; for(var i = 0; i<get.length; i++) { let data = ['age'...
  • 对象的复杂属性赋值: property 标签的name属性是别是被赋值的属性名 数组:用property 嵌套array标签 List属性:用property 嵌套list标签 Set属性:用property 嵌套set标签 Map属性:用property 嵌套map嵌套...
  • // 要给对象赋值的数据 Map jsonMap = (Map) JSONObject.parse(jsonData); // 获得对象list List diaList = diagnosisRelationService.getAllList(); Method[] method = diagnosisPra.getClass().getDeclar...
  • 1、将 list title、content、writes赋值给一个新数组对象。 (write 在新对象的属性名为 answer) var list = [{ "titleCode": "1", "score": "3.0", "typeId": "1", "title": "试题标题", ...
  • 如果我们需要获得一个对象实例,我们可以用 new + 构造器方式来获得,如:List list = new ArrayList(),这种方式是我们主动地获取资源,也是我们所常用。而当我们使用 Spring 框架时候,Spring 一个特性...
  • List集合类型属性赋值4.为Map集合类型属性赋值5.为Properties类型属性赋值6.利用util命名空间创建集合类型bean7.为级联属性赋值 为bean的属性赋值,即为依赖注入 依赖关系管理:以后都交给Spring来维护 在...
  • java中,有两个listlistlist,AB对象的属性略有不同,现在想把A中的属性复制到B中,我们可以通过fastJOSN的方式方便的实现 package com.hanshow.wise.base.operate.util; import java.util.List; import ...
  • 如果我们需要获得一个对象实例,我们可以用 new + 构造器方式来获得,如:List list = new ArrayList(),这种方式是我们主动地获取资源,也是我们所常用。 而当我们使用 Spring 框架时候,Spring 一个特性...
  • TComboBoxItems属性赋值解析

    千次阅读 2006-05-12 11:50:00
    那么所有对它引用将失效但最近在写TComboBox相关的赋值操作时却发现,TComboBoxItems属性为TStrings类型,但执行combobox.items := stringlist;之后free掉stringlist,发现TComboBoxItems并没有被free
  • **1、**上文中已经介绍Spring框架创建对象的三种方法,其中使用有参构造方法时,可以用给对象属性赋值,除了上述对象属性赋值方法以外,还可以使用set方法给对象属性赋值。 **2、**本文使用set方法给对象属性赋值...
  • 遍历一个数组,将这个数组里面的值赋值对象的某个属性,将对象添加进list,结果每个list的值都是一样的。 解决方法:在for循环外查询该对象,在for循环里面重新new一个对象,使用BeanUtils.copyProperties(old,...
  • 可以为将要赋值的对象进行单个单个按顺序赋值 通过传递的属性的index(就是他是第几个属性)获取本属性的值 返回对象属性的数量 两个对象之间相互拷贝属性值 传递一个list,遍历bean进行赋值 传递一个

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 361
精华内容 144
关键字:

对象的list属性赋值