我一直在尝试创建自己的库来序列化和反序列化从类到 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
假设我们不知道类型。
有没有一种方法可以将这个基元数组转换为通用的对象数组。
以通用方式表示无需知道或检查数组的类型是什么。或者我应该循环遍历所有原始类型并分别处理它们。
我可以以两种方式做到这一点,我想以通用方式做到这一点的唯一原因是减少冗余代码。
提前致谢。