根据excel字段名称给对象对应字段赋值l
时间: 2024-05-06 17:17:02 浏览: 105
用vf语言导excel的属性语句
您好,根据excel字段名称给对象对应字段赋值这个问题可以通过使用反射来实现。您可以通过读取excel中的字段名称以及字段值,然后通过反射的方式动态地为对象的相应字段赋值。具体实现可以参考以下代码:
```java
import java.lang.reflect.Field;
public class ObjectReflectUtil {
/**
* 根据excel字段名称给对象对应字段赋值
*
* @param obj 待赋值的对象
* @param field 字段名称
* @param value 字段值
* @param <T> 对象类型
* @throws NoSuchFieldException 没有找到相应的字段
* @throws IllegalAccessException 字段为私有的,无法访问
*/
public static <T> void setFieldByName(T obj, String field, Object value) throws NoSuchFieldException, IllegalAccessException {
Field declaredField = obj.getClass().getDeclaredField(field);
declaredField.setAccessible(true);
declaredField.set(obj, value);
}
}
```
使用示例:
```java
public class Demo {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
// 创建一个包含两个字段的对象
User user = new User();
// 读取excel中的字段名称和字段值
String fieldName = "age";
Object fieldValue = 20;
// 给对象对应字段赋值
ObjectReflectUtil.setFieldByName(user, fieldName, fieldValue);
System.out.println(user.getAge()); // 输出:20
}
}
class User {
private String name;
private int age;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
希望能够帮到您!
阅读全文