要将一个Object数组转换为想要的类的数组,可以使用Java中的泛型和反射机制。以下是一个示例代码:
import java.lang.reflect.Array;
import java.util.List;
public class ArrayConverter {
public static <T> T[] convert(List<Object> objectList, Class<T> clazz) {
T[] array = (T[]) Array.newInstance(clazz, objectList.size());
for (int i = 0; i< objectList.size(); i++) {
array[i] = clazz.cast(objectList.get(i));
}
return array;
}
}
在这个示例代码中,我们定义了一个静态方法convert
,它接受一个List<Object>
和一个Class<T>
类型的参数,并返回一个T[]
类型的数组。我们使用Java泛型来确保返回的数组类型与传入的Class<T>
类型相同。
在方法内部,我们使用Array.newInstance
方法创建一个新的数组,其中包含objectList
中的所有元素。然后,我们遍历objectList
中的每个元素,并使用clazz.cast
方法将其转换为T
类型,并将其存储在新数组中。
要使用这个方法,只需要传入一个List<Object>
和一个Class<T>
类型的参数即可。例如:
List<Object> objectList = new ArrayList<>();
objectList.add(new MyClass());
objectList.add(new MyClass());
MyClass[] myArray = ArrayConverter.convert(objectList, MyClass.class);
在这个示例代码中,我们创建了一个List<Object>
,其中包含两个MyClass
对象。然后,我们调用ArrayConverter.convert
方法,将objectList
和MyClass.class
传递给它,以将Object
数组转换为MyClass
数组。
领取专属 10元无门槛券
手把手带您无忧上云