java将一个类的属性值赋给另一个不同类的同名属性
时间: 2023-08-16 22:03:43 浏览: 117
要将一个类的属性值赋给另一个不同类的同名属性,可以使用Java的反射机制。
示例代码如下:
```java
public static void copyProperties(Object source, Object target) throws IllegalAccessException, InvocationTargetException {
Class<?> sourceClass = source.getClass();
Class<?> targetClass = target.getClass();
Field[] sourceFields = sourceClass.getDeclaredFields();
for (Field sourceField : sourceFields) {
Field targetField = null;
try {
targetField = targetClass.getDeclaredField(sourceField.getName());
} catch (NoSuchFieldException e) {
// 如果目标类中没有与源类同名的属性,则跳过该属性
continue;
}
sourceField.setAccessible(true);
targetField.setAccessible(true);
targetField.set(target, sourceField.get(source));
}
}
```
该方法使用了反射机制,首先获取源对象和目标对象的类,然后获取源类中的所有属性。接着遍历每个属性,判断目标类中是否存在同名的属性,如果存在则将源对象的属性值赋给目标对象的属性。需要注意的是,该方法只能拷贝源类和目标类中同名的属性,不同名的属性不会被拷贝。
阅读全文