黑马程序员技术交流社区

标题: 如何得到数组中的类型 [打印本页]

作者: 胡刚涛    时间: 2012-8-18 11:16
标题: 如何得到数组中的类型
张老师视频中说道:怎么得到数组中元素的类型,这是没有办法的,但是自己写了一段代码:
public class GetNameTest {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
int[] a ={1,3,5};
System.out.println(a.getClass().getName());
Object[] obj={1,"acb",true};
System.out.println(obj.getClass().getName());
System.out.println(obj[2].getClass().getName());
}
}
运行的结果是:
[I//它不是代表是一个int型的数组
[Ljava.lang.Object;//它是一个Object型的数组
java.lang.Boolean//它代表的是Boolean型的,在Object型的数组第三个就是Boolean型的true啊
运行的结果不就是可以得到一个数组中元素的类型吗?那道是我的理解有错误,求指点!!!


作者: 黑马王俊东    时间: 2012-8-19 14:35
首先,a是一个基本数据类型数组的引用,打印出它的类型时它是没有对应类型的。而obj是Object数组类型的数组的引用,所以打印出Object类型的。而obj[2]对应的是一个具体的对象,即为boolean类型的,而boolean类型对应的包装类为Boolean,所以打印出Boolean。
作者: 胡刚涛    时间: 2012-8-19 14:42
黑马王俊东 发表于 2012-8-19 14:35
首先,a是一个基本数据类型数组的引用,打印出它的类型时它是没有对应类型的。而obj是Object数组类型的数组 ...

张老师视频中说道:怎么得到数组中元素的类型,这是没有办法的,这句话怎么解释???




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2