Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何将基元类型数组作为对象数组传递?_Java_Arrays_Object_Primitive Types - Fatal编程技术网

在java中,如何将基元类型数组作为对象数组传递?

在java中,如何将基元类型数组作为对象数组传递?,java,arrays,object,primitive-types,Java,Arrays,Object,Primitive Types,我希望以下函数对于所有数据类型都是通用的。但是,这不适用于基本数据类型。为什么呢? 有人能给出解决办法吗?我将不胜感激 private int getIndexOfElement(Object x, Object[] xArray){ for(int i=0; i<xArray.length;i++){ if(xArray[i]==x){ return i; } }

我希望以下函数对于所有数据类型都是通用的。但是,这不适用于基本数据类型。为什么呢? 有人能给出解决办法吗?我将不胜感激

private int getIndexOfElement(Object x, Object[] xArray){
        for(int i=0; i<xArray.length;i++){
            if(xArray[i]==x){
                return i;
            }
        }
        return  -1;
    }
private int getIndexOfElement(对象x,对象[]xArray){

对于(int i=0;i您的方法
getIndexOfElement(int,Object[])
接受扩展
Object
的任何类型数组。由于
int
是基元类型,而不是类类型,您不能将
int[]
传递给该方法。但是,您可以使用
Integer
类:

    Integer[] ints = new Integer[]{1,2,3,4,5};
    Integer i = 5;
    int index = getIndexOfElement(i, ints);

您的方法
getIndexOfElement(int,Object[])
接受扩展
Object
的任何类型数组。由于
int
是基元类型,而不是类类型,因此无法将
int[]
传递给该方法。但是,您可以使用
Integer
类:

    Integer[] ints = new Integer[]{1,2,3,4,5};
    Integer i = 5;
    int index = getIndexOfElement(i, ints);

原语不是对象。很简单。这是不可能做到的。使用反射可以做到这一点,但几乎肯定不推荐这样做。反射很笨重而且容易出错,所以您应该仔细考虑使用它是否真的是一个好的决定。但是了解它很有用。在Java 8中,您可以使用以下内容:
Arrays.stream(数据).boxed().toArray(整数[]:::新)
将基本体数组转换为对象数组。@Titus你是建议将整个数组复制到一个新数组中,只是为了找到索引吗?这似乎有点……不明智。基本体不是对象。很简单。这是无法做到的。使用反射可以做到这一点,但几乎肯定不建议这样做。反射是笨重的d容易出错,因此您应该仔细考虑使用它是否真的是一个好的决定。但了解它很有用。在Java 8中,您可以使用以下内容:
Arrays.stream(data.boxed().toArray(Integer[]::new)
将基本体数组转换为对象数组。@Titus您是否建议将整个数组复制到一个新数组中,只是为了找到索引?这似乎有点……不明智。