可能重复:
Can a single Java variable accept an array of either primitives or objects?
我想创建一个接受任意数组的方法。该数组可以是基元数组或对象数组。
不幸的是,我无法做到
public void myMethod(Object[] a) {...}
因为原语不是对象!有没有办法进一步抽象这个级别?
编辑我知道我可以将其作为对象传递,但是如何在方法中将其作为数组进行访问?我不能这样做:
public void myMethod(Object[] a) {
Object something = a[0];
}
答案 0 :(得分:1)
import java.lang.reflect.Array;
public void myMethod(Object[] a)
{
Array.get(a, 0);
}
答案 1 :(得分:1)
所有数组类型都是Object类型,没有更具体的。
import java.lang.reflect.Array;
public void myMethod(Object array) {
Object first = Array.get(a, 0); // Object, primitives are wrapped.
}
答案 2 :(得分:0)
不幸的是,没有比重载myMethod
更好的解决方案(目前)来处理你想要处理的每种基本类型。例如,您可以查看班级Arrays
binarySearch
方法的签名
当然,您也可以使用反射传递Object
并检查它是否是数组(在这种情况下,请检查此数组的类型)。但是,如果您这样做,那么您的应用程序将变得不那么类型。