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);
我的对象参数可以是 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);