【发布时间】:2013-05-31 21:25:20
【问题描述】:
我一直在尝试创建自己的库来序列化和反序列化从类到 xml 以及从 xml 到类实例的原始类型,使用反射来检查方法命名模式和方法返回类型。
到目前为止,我已经能够使用所有基本原语类型来做到这一点,但我一直坚持序列化相同原语的数组。
例如我调用类方法来获取基元数组:
method.invoke(clazz, (Object[])null);
这个方法将只返回一个原始数组int[], double[], float[], char[] 等,虽然我们不知道它会是哪一个。
我尝试过使用泛型,例如
T t = (T)method.invoke(clazz, (Object[])null);
T[] t = (T[])method.invoke(clazz, (Object[])null);
但它不允许我从原始数组转换为对象。
如果我们不知道类型,你不能使用Array.newInstance。
有没有一种方法可以将这个基元数组转换为通用的对象数组。
以通用方式表示不需要知道或检查数组的类型。或者我应该循环遍历所有原始类型并分别处理它们。
这两种方式我都可以这样做,我想以通用方式这样做的唯一原因是减少冗余代码。
提前致谢。
【问题讨论】:
标签: java xml generics serialization reflection