昨天去面试,被问道这样一题
 
int[] i = {1,2,3};
long[] l = i; 
这样写肯定是错的,问提示为什么错?

解决方案 »

  1.   

    can not convert from int[] to Long[]
      

  2.   

    Type mismatch: cannot convert from int[] to long[]
      

  3.   

    将int赋给long是可以的,但将int[]赋给long[]不可以,因为不兼容的类型
      

  4.   

    数组是以对象的形式出现的,而long和int是基本类型,所以把int赋给long是正确的,而把int数组(是一个对象),赋给long数组(另一个不一样的对象)则会出现不兼容的问题.
    另外,也可以从内存方面去解释.但是最本质的问题就是,int和long是基本数据类型,而int[]和long[]则是引用类型(复杂数据类型).
      

  5.   

    自动转型只是发生在基本数据类型,和具有子父类关系的引用类型的类之间.
    int[] long[] 是数组.他们并不是基本数据类型.也没有子父类关系.所以不能完成转型.
      

  6.   

    自动转型只是发生在基本数据类型,和具有子父类关系的引用类型的类之间. 
    int[] long[] 是数组.他们并不是基本数据类型.也没有子父类关系.所以不能完成转型.
      

  7.   

    can not convert from int[] to Long[]
      

  8.   

    int 型比较容易转换成long但是int[] to long[]他是不兼容的哦
      

  9.   

    随便用EC或者NB,应该就有报错吧?自己试一试不就好了?
      

  10.   

    数组是以对象的形式出现的,而long和int是基本类型,所以把int赋给long是正确的,而把int数组(是一个对象),赋给long数组(另一个不一样的对象)则会出现不兼容的问题. 
    另外,也可以从内存方面去解释.但是最本质的问题就是,int和long是基本数据类型,而int[]和long[]则是引用类型(复杂数据类型).
      

  11.   

    只能是long可以给int赋值,不能反过来,类型不兼容
      

  12.   


    刚在Eclipse试了下,提示:类型不匹配。
    8搂的说的很对
      

  13.   

    这道题看上去是考类型转换的,首先类型自动转型只是发生在基本数据类型之间和具有子类和父类关系的引用类型的类之间. int[] i与 long[] l都是数组.都是引用类型变量,他们并不是基本数据类型.也没有子父类关系.所以不能完成自动类型转型.