怎么把一个数组,或者集合赋值给一个对象?

java来实现
比如有一个 int arr[] = {23,456,6567,3456,234}
有一个User类,有属性 id, name,password,sex,tel,
怎么把上述数组依次赋值给一个user类呢,就是id=23,name=456,等等,
该如何来实现 呢

** 哦,原来楼主已经解决了,算了既然我也写好了就发出来吧。**

 public static <T> T setParam(Class<T> clazz, Object[] args)
            throws Exception {
        if (clazz == null || args == null) {
            throw new IllegalArgumentException();
        }
        T t = clazz.newInstance();
        Field[] fields = clazz.getDeclaredFields();
        if (fields == null || fields.length > args.length) {
            throw new IndexOutOfBoundsException();
        }
        for (int i = 0; i < fields.length; i++) {
            fields[i].setAccessible(true);
            fields[i].set(t, args[i]);
        }
        return t;
    }

数组是有序的,集合是无序,

数组你写个初始化构造函数,传数组过去自己写赋值代码不就行了

你可以写一个构造函数或者setter函数,函数传一个数组参数,在函数内部实现赋值

新建数组或集合对象,直接赋值就可以了

看你数组里面的值是否一 一对应对象里面的属性值,如果就一个数组里面刚好是一个对象属性值,直接在对象写set 方法,需要用到就加个get的方法。也可以用反射。

自定义构造函数,形参设置为一维数组

创建一个list集合用user类泛型,然后遍历这个集合,用add方法按照数组元素的下标添加到此list中。

看看可不可以用,我把数组改成了String类型
public class User {
static String id; static String name;static String password;static String sex;static String tel;
/*无参构造函数*/
public User(){};
/*有参构造函数*/
public User( String id, String name,String password,String sex,String tel){
this.id = id;
this.name = name;
this.password = password;
this.sex = sex;
this.tel = tel;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ ", sex=" + sex + ", tel=" + tel + "]";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public static void main(String[] args) {
User user = new User(id, name, password, sex, tel);
String arr[] = {"23","456","6567","3456","234"};
user.id = arr[0];
user.name = arr[1];
user.password = arr[2];
user.sex = arr[3];
user.tel = arr[4];
System.out.println(user.getId()+" "+user.getName()+" "+user.getPassword()+" "+user.getSex()+" "+user.getTel());
}
}

        小哥哥,可以把User对象的属性值封装到一个集合里面,然后遍历集合取出里面的属性值赋值给定义的数组里面的值,请采纳我的行不,我差8个c币下载一个重要文档import java.util.ArrayList;

public class test {
public static void main(String[] args) {
String arr[] = {"23","456","6567","3456","234"};
User user = new User();
ArrayList arr1 = new ArrayList<>();
arr1.add(user.id);
arr1.add(user.name);
arr1.add(user.password);
arr1.add(user.sex);
arr1.add(user.tel);
for(int i = 0;i < arr1.size();i++){
arr1.get(i) = arr[i];
}
}
}

这种自己写个工具方法就行

import java.util.ArrayList;

public class test {
public static void main(String[] args) {
String arr[] = {"23","456","6567","3456","234"};
User user = new User();
ArrayList arr1 = new ArrayList<>();
arr1.add(user.id);
arr1.add(user.name);
arr1.add(user.password);
arr1.add(user.sex);
arr1.add(user.tel);
for(int i = 0;i < arr1.size();i++){
arr1.get(i) = arr[i];
}
}
}

创建一个集合把你定义的类的属性封装到集合里面,然后遍历集合取出里面的属性值和你开始定义的数组值进行赋值就好了import java.util.ArrayList;

public class test {
public static void main(String[] args) {
String arr[] = {"23","456","6567","3456","234"};
User user = new User();
ArrayList arr1 = new ArrayList<>();
arr1.add(user.id);
arr1.add(user.name);
arr1.add(user.password);
arr1.add(user.sex);
arr1.add(user.tel);
for(int i = 0;i < arr1.size();i++){
arr1.get(i) = arr[i];
}
}
}

[{"id":23,"name":"456","password":"6567","sex":"3456","tel":"234"},{.....}]

[{"id":23,"name":"456","password":"6567","sex":"3456","tel":"234"},{.....}]
JSON.parseArray(json, User.class);

单独写个函数将要赋值的数据进行封装

多谢大家的援助之手,困扰了我一个多星期的问题今天终于是解决了,我是用反射做的,只需要传入,数组,和当前类,就可以返回对象

  //反射实现
    public static Object invokeMethod(List list) throws Exception {
        Object obj = Vo.class.newInstance();//创建对象实例
        Field[] fields = Vo.class.getDeclaredFields();

        for (int i = 0; i<list.size();i++){
            Field f = fields[i];
            PropertyDescriptor pd = new PropertyDescriptor(f.getName(), Vo.class);
            Method m = pd.getWriteMethod();//获取对象的写入方法
            m.invoke(obj, list.get(i).toString());
        }
        return obj;
    }

以上是主要代码,通过反射获得各个字段,然后依次遍历就可以了,不同的对象,属性都可以调用 . 谢谢

能看懂吗
Object[] array = new Object[ int size ];/Object array[] = new Object[ int size ];size 是数组大小
eg: String[] str = new String[ 10 ];
str[ 0 ] = "1"; str[ 1 ] = "1";
Object[] array = {obj1,obj2,==};/Object array[] = {obj1,obj2,==};
Object[] array = new Object[]{obj1,obj2,==};/Object array[] = new Object[]{obj1,obj2,==};
遍历:
for(int i = 0;i < array.length;i++){
System.out.println( array[ i ] );
}
或者
for(Object obj : array){
System.out.println( obj );
}

public User fun(int[] arr0{
User user= new Uesr();
user.id=arr[0];
user.name=arr[1];
user. password=arr[2];
user.sex=arr[3];
user. tel=arr[4];
return user;
}