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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹文涛 黑马帝   /  2011-9-14 15:11  /  2176 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]public static void main(String[] args) throws Exception{
                int [] a1 = new int[3];
                int [] a2 = new int[4];
                int [][] a3 = new int[2][3];
                String [] a4 = new String[3];
                System.out.println(a1.getClass() == a2.getClass());
                System.out.println(a1.getClass() == a3.getClass());
                System.out.println(a1.getClass() == a4.getClass());
                System.out.println(a1.getClass().equals(a3.getClass()));
                System.out.println(a1.getClass().equals(a4.getClass()));
}[/code]7、8行 报错呀 完全按照张老师的视频中打的,但改成9、10行就没事儿。

24_黑马程序员_张孝祥_Java基础加强_数组与Object的关系及其反射类型

评分

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

查看全部评分

8 个回复

倒序浏览
  1.                 System.out.println(a1.getClass() == a3.getClass());

  2.                 System.out.println(a1.getClass() == a4.getClass());
复制代码
错了。 类型操作错误。a1.getClass()是至int[] 类型,而 a3.getClass()是int[][] 。类似于你一个int == String

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 谢谢参与!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-14 16:53:35
藤椅

回复 楼主 的帖子

Class<? extends Object> getClass()
          返回一个对象的运行时类。
这是Object的getClass()方法的API 可以看到它返回的Class对象是自带泛型的。意思是这样的:
比如你的a1/a2 同是一维数组,那么泛型匹配可以(==)比较。而a3/a4是二维数组,和字符串数组,既不等同a1也不是a1的子类对象,反射出来的Class自然也无法比较,由于泛型是作用于编译阶段。检测类型匹配所以这两行无法通过编译。

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答不错!

查看全部评分

回复 使用道具 举报
回复楼上  为什么 老师那里不报错呢
回复 使用道具 举报
黑马网友  发表于 2011-9-14 17:17:54
报纸

回复 藤椅 的帖子

是啊 我就是想问 老师那为什么不报错 ~~~~~~:hug:
回复 使用道具 举报
黑马网友  发表于 2011-9-14 17:38:48
地板
我也奇怪,我的也报错,老师那里没报错。
回复 使用道具 举报
黑马网友  发表于 2011-9-14 17:39:44
7#
eclipse 抽风了
回复 使用道具 举报
黑马网友  发表于 2011-9-14 19:19:59
8#
可能是老师的jdk版本的问题,因为泛型是java1.5的新特性,也就是说1.5之前是没有泛型的。老师如果用的是1.4版本。Class类从1.0版本就有了,也就是说1.0-1.4版本那样写就不会出现编译错误!我这么理解,是不是这样的情况有待考证呵呵!
回复 使用道具 举报
黑马网友  发表于 2011-9-14 21:57:16
9#

回复 楼主 的帖子

我的jdk1.6,我的eclipse不报错

true
false
false
false
false
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马