Java 有没有办法在不知道类型的情况下获取数组的大小?

Java is there a way to get the size of an array without knowing the type?

我的对象参数可以是 int[] 数组或 Integer[] 数组。 有没有一种方法可以确定大小而不必手动检查它是 int[] 还是 Integer[] 类型?

int length = ((Object[]) param).length 不适用于 int[](它会导致 ClassCastException)

我目前的做法是使用:

int length = param instanceof int[] ? ((int[]) param).length : ((Integer[]) param).length;

我想知道是否有一种方法可以转换在这两种情况下都有效的参数,这样我就可以避免每次都手动检查。

编辑:我不小心同时使用了“x”和“param”来命名我的变量。现在我只使用“param”来减少问题的混淆。

是的。使用 Array.getLength()

Object x; // assuming it’s an array
int length = Array.getLength(x);