java数组检查对象是否为数组
在我的代码中,我有以下功能:
private static Object formatArg(Object arg)
{
Object formatterArg;
if (arg instanceof Collection)
formatterArg = getFormatter().format((Collection) arg, mFormatters);
else if (arg instanceof Object[])
formatterArg = getFormatter().format((Object[]) arg, mFormatters);
else
formatterArg = getFormatter().format(arg, mFormatters, false);
return formatterArg;
}
问题在于arg instanceof Object[]
。这样做的目的是我想处理int[]
、long[]
以及任何原语数组
问题
有没有可能从Object
中找出一个数组,不管它是哪种类型的,并将它传递给另一个函数?这应该适用于基元类型的数组以及Objects
的数组。。。我可以使用arg != null && arg.getClass().isArray()
来检查它Object
是一个数组,但是我不知道如何将它传递(因为我不能直接将int[]
转换为Object[]
…)。有什么窍门可以达到我的目的吗
编辑
一个漂亮的解决方案会自动将int[]
转换为Integer[]
,将long[]
转换为Long[]
等等。这些转换后的数组将与我的instanceof Object[]
一起使用,但这意味着我必须手动检查这些基本类型,我可以这样做,但这很难看。还有更好的主意吗
共 (0) 个答案