有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案