黑马程序员技术交流社区
标题:
反射中的字节码
[打印本页]
作者:
孙宁洋
时间:
2013-6-4 19:33
标题:
反射中的字节码
张老师讲的反射中判断field.getType()==String.class()为什么不能用equals,张老师说同一个字节码就用==,不是很理解求指教
作者:
王军行
时间:
2013-6-4 19:50
没说不可以用,只是用 == 号语意更准确。或者说比equalse显得更专业。
就比如 变量比较 用 ==一样。
我的理解是就象 int类型比较值大小 用 == 不同类型如 int和char就不能用 == 了,
基于这种思想,在比较同一种类型时用 == 号意思更明确一点。
这里都是Class类型所以用 == 来比较,但是这里equals也是调用的 == 所以也可以使用,但是走了弯路通过equals调用==
作者:
杨青
时间:
2013-6-5 01:12
因为字节码在内存中具有唯一性,因为两个字节码就是两个对象,两个对象就是两个内存地址值,equals方法就是比较内存地址值的,你拿两个内存地址值不同的字节码对象进行比较,那么没意义,肯定是false。如果用双等号才能证明两个字节码的内容是否真正相同,这里强调的是内容,因为他比较的是二进制的文件的内容。
作者:
刘海芳
时间:
2013-6-5 09:50
楼上正解。。。字节码就是010101这种形式的2进制的内存地址,比较肯定==啦,因为==操作符比较的是内存地址,equals是比较内存地址中的值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2