在我写超黑反射时,总是遇到数组反射时报类型不匹配的错误,原因是在创建数组时,返回了Object[]类型,擦除了原始类型,这会导致反射时报错。
感谢下面这段代码的提供者!Java博大精深!
public <T> T[] convertArray(Class<T> targetType, Object[] arrayObjects) {
if (targetType == null) {
return (T[]) arrayObjects;
}
if (arrayObjects == null) {
return null;
}
T[] targetArray = (T[]) Array.newInstance(targetType, arrayObjects.length);
try {
System.arraycopy(arrayObjects, 0, targetArray, 0, arrayObjects.length);
} catch (ArrayStoreException e) {
e.printStackTrace();
}
return targetArray;
}