[英]How to convert a list of Class objects into an array?
我在List中有一些Class对象,我想将其转换为数组。 下面是我的代码:
private static Class<?>[] getClasses(final Object[] params) {
List<Class<?>> classList = new ArrayList<>();
for (final Object param : params) {
classList.add(param.getClass());
}
return (Class<?>[]) classList.toArray();
}
我了解toArray()返回一个Object []。 有没有办法避免演员?
您可以创建一个新数组并将每个元素一个接一个地放入:
Class<?>[] classes = new Class<?>[classList.size()];
for (int i = 0 ; i < classList.size() ; i++) {
classes[i] = classList.get(i);
}
或者,不使用列表重写整个方法:
private static Class<?>[] getClasses(final Object[] params) {
Class<?>[] classList = new Class<?>[params.length];
for (int i = 0 ; i < classList.length ; i++) {
classList[i] = params[i].getClass();
}
return classList;
}
您可以将toArray
方法与数组一起用作参数:
return classList.toArray(new Class<?>[classList.size()]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.