And*_*ing 9 java xml generics reflection serialization
我一直在尝试创建自己的库,使用反射来序列化和反序列化从类到xml和从xml到类实例的基本类型,以检查方法命名模式和方法返回类型.
到目前为止,我已经能够使用所有基本原始类型执行此操作,但我仍然坚持序列化相同基元的数组.
例如,我调用类方法来获取基元数组:
method.invoke(clazz, (Object[])null);
Run Code Online (Sandbox Code Playgroud)
这个方法只返回一个原始数组int[], double[], float[], char[]等,虽然我们不知道它将是哪一个.
我尝试过使用像
T t = (T)method.invoke(clazz, (Object[])null);
T[] t = (T[])method.invoke(clazz, (Object[])null);
Run Code Online (Sandbox Code Playgroud)
但它不允许我从原始数组转换为对象.
并且您不能使用Array.newInstance假设我们不知道类型.
有没有办法可以将这个基元数组转换为以通用方式表示Object数组.
以通用方式表示无需知道或检查阵列类型是什么.或者我应该循环遍历所有原始类型并分别处理所有原始类型.
我可以这两种方式做到这一点,我想以一般方式做到这一点的唯一原因是减少冗余代码.
提前致谢.
Pet*_*rey 12
您可以使用Array实用程序类
public static Object[] toObjectArray(Object array) {
int length = Array.getLength(array);
Object[] ret = new Object[length];
for(int i = 0; i < length; i++)
ret[i] = Array.get(array, i);
return ret;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2897 次 |
| 最近记录: |