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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡刚涛 中级黑马   /  2012-8-18 11:16  /  2029 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

张老师视频中说道:怎么得到数组中元素的类型,这是没有办法的,但是自己写了一段代码:
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啊
运行的结果不就是可以得到一个数组中元素的类型吗?那道是我的理解有错误,求指点!!!

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

2 个回复

倒序浏览
首先,a是一个基本数据类型数组的引用,打印出它的类型时它是没有对应类型的。而obj是Object数组类型的数组的引用,所以打印出Object类型的。而obj[2]对应的是一个具体的对象,即为boolean类型的,而boolean类型对应的包装类为Boolean,所以打印出Boolean。
回复 使用道具 举报
黑马王俊东 发表于 2012-8-19 14:35
首先,a是一个基本数据类型数组的引用,打印出它的类型时它是没有对应类型的。而obj是Object数组类型的数组 ...

张老师视频中说道:怎么得到数组中元素的类型,这是没有办法的,这句话怎么解释???
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马