A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Simple_love 中级黑马   /  2013-10-3 03:22  /  1158 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int[] a1=new int[]{2,3,4};
int[] a2=new int[4];
int[][] a3=new int[2][3];
String[] A4=new String[]{"abc","bcd","cdf"}

//运行结果为true,具有相同的维数和元素的类型属于统一的字节码
  System.out.println(a1.getClass()==a2.getClass());
//结果为false,虽然数组的元素的类型相同但是a1是一维数组a2是二维数组,
  System.out.println(a1.getClass()==a3.getClass());
//结果为false,a1和a2两个数组都是一维数组,但是a1是整数数组,a2是字符串数组,
   System.out.println(a1.getClass()==a4.getClass());

  //结果为true, a1整数数组和a2字符串数组的父类都是Object
   System.out.println(a1.getClass().getSuperclass().getName()==a4.getClass().getSuperclass().getName()));
//
Object obj1=a1;//正常,基本类型的一维数组可以被Object类型使用
Object[] onj11=a1//编译错误;基本类型的一维数组不当着Object[]类型使用,
//下面两句运行正常, 因为非基本类型的一维数组可以当做Object使用也可以当做Object[]使用,  
Object obj3=a4;
Object[] obj12=a4;
  //下面两句运行正常,任何二位数组可以当做Object使用, 也可以当做Object[]使用,因为二维数组的元素是个一维数组,Object是数组的父类
Object obj4=a3;
Object[] obj11=a3;

System.out.println(Arrays.asList(a1));
   System.out.println(Arrays.asList(a4));
运行的结果[[I@de6ced]
       [a, b, c]
因为在jDk1.4版本asList()方法接受的是一个Object[]类型,a4是字符串数组类型,可以被转换成Object[]类型,所有就会a4的数组中所有的元素存入List集合中。a1的整数数组,不能转为Object[]类型,只能转成Object类型,所有就不会去找jdk1.4版本运行, 就会去找jdk1.5,但是1.5版本asList接收的是可变参数,这时会把a1的整数数组当做一个元素存入在list集合中,

数组的反射
public class ReflectTest {
  public static void main(String[] args)
{
Object[] a4= new Object[]{"abc",4,true}
     printObject(a4)

  }
public static void  printObject(Object obj)
{
      Class clazz=obj.getClass();


    //判断传进来的参数类型是不是数组类型
   if(clazz.isArray())
   {
得到数组的个数
   int len= Array.getLength(obj);
//clazz.getClass.getName在这里无法得到数组中的元素类型,
   for(int x=0;x<len;x++)
   {
//获取数组中的每一个元素
    System.out.println(Array.get(obj, x));
//可以得到数组中某一个具体的元素的类型
    System.out.println( Array.get(obj, x).getClass().getName());
   }
   } else
   {
    System.out.println(obj);
   }
}
运行的结果为
abc
java.lang.String
4
java.lang.Integer
  true
java.lang.Boolean

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

1 个回复

倒序浏览
( ⊙ o ⊙ )啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马