我一直在尝试创建自己的库,通过反射来检查方法命名模式和方法返回类型,将基本原始类型从类序列化/反序列化为xml并从xml反序列化回类实例。
到目前为止,我已经成功地使用所有基本原始类型完成了这个过程,但是我在序列化相同原始类型的数组时卡住了。
例如,我调用该类方法以获取基本类型的数组:
但是它不允许我从原始数组转换为对象。
如果我们不知道类型,就不能使用Array.newInstance。
有没有一种方法可以以通用的方式将这个原始数组转换为对象数组。
通用的意思是不需要知道或检查数组的类型。或者我应该循环遍历所有原始类型并单独处理它们。
我可以用两种方式做到这一点,我想以通用的方式做这件事的唯一原因是为了减少冗余代码。
提前致谢。
到目前为止,我已经成功地使用所有基本原始类型完成了这个过程,但是我在序列化相同原始类型的数组时卡住了。
例如,我调用该类方法以获取基本类型的数组:
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。
有没有一种方法可以以通用的方式将这个原始数组转换为对象数组。
通用的意思是不需要知道或检查数组的类型。或者我应该循环遍历所有原始类型并单独处理它们。
我可以用两种方式做到这一点,我想以通用的方式做这件事的唯一原因是为了减少冗余代码。
提前致谢。