写一个java方法,传入一个固定类的对象,和一个指定类型;用固定类对象的数据组装,返回这个指定类型的对象;
时间: 2023-05-11 16:07:32 浏览: 54
好的,这是一个比较常见的类型转换问题,可以使用 Java 的反射机制来实现。下面是一个示例代码:
```java
public static <T> T convertObject(Object obj, Class<T> clazz) throws Exception {
T result = clazz.newInstance();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Field targetField = clazz.getDeclaredField(field.getName());
targetField.setAccessible(true);
targetField.set(result, field.get(obj));
}
return result;
}
```
这个方法接受两个参数,第一个是一个固定类的对象,第二个是一个指定类型的 Class 对象。它会使用反射机制获取固定类对象的所有字段,并将它们赋值给指定类型的对象。注意,这个方法假设指定类型有一个无参构造函数。
使用示例:
```java
MyClass obj = new MyClass();
obj.setName("Alice");
obj.setAge(18);
MyOtherClass result = convertObject(obj, MyOtherClass.class);
System.out.println(result.getName()); // 输出 "Alice"
System.out.println(result.getAge()); // 输出 18
```
这里假设 MyClass 和 MyOtherClass 都有一个名为 name 和 age 的字段。