[英]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.