繁体   English   中英

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

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

我的 Object 参数可以是int[]数组或Integer[]数组。 有没有办法确定大小而无需手动检查它是int[]还是Integer[]类型?

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

我目前的方法是使用:

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

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

编辑:我不小心同时使用了“x”和“param”来命名我的变量。 现在我只使用“参数”来使问题不那么混乱。

是的。 使用Array.getLength()

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

因为 int 是一个原语,而 Integer 是一个 object,所以我真的没有理由认为你应该首先处于这种情况。

无论如何,您可以在没有强制转换的情况下执行 param.length - 数组的长度不依赖于它的类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM