黑马程序员技术交流社区

标题: Instanceof运算符问题 [打印本页]

作者: 马林康    时间: 2012-6-19 18:28
标题: Instanceof运算符问题
本帖最后由 马林康 于 2012-6-20 02:25 编辑

List list1=new ArrayList();
List list2=null;
system.out.println(list1 instanceof List);
system.out.println(list2 instanceof List);
第二个结果怎么是false??


作者: 耿鑫    时间: 2012-6-19 18:33
父类引用指向子类对象,这是多态的表现形式 ,应该返回的是true 楼主哪里弄错了吧
public class Test
{
        public static void main(String[] args)
        {
                List list = new ArrayList();
               
                System.out.println(list instanceof List);
        }
}

结果是true

作者: 唐辉辉    时间: 2012-6-19 18:37
返回的是true,楼主学习太用功,导致出现幻觉了。{:soso_e113:}
作者: 王晓新    时间: 2012-6-19 18:39
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。
instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
还有,我运行的结果是true
作者: 孙浩    时间: 2012-6-19 18:46


QQ截图20120619184439.png (21.52 KB, 下载次数: 28)

QQ截图20120619184439.png

作者: 胡大强    时间: 2012-6-19 18:48
java的instanceof方法提供了判断某个对象是否是属于某个类型的方法
instanceof的这些表现都是跟显式转换是有关系的,就是说当我们在instanceof方法时,编译器会检查这个对象是否能够显式转换到右边的类型,如果不能显式转换则直接报错,如果不能确定类型,则通过编译,具体看运行时定。

作者: 常佳杰    时间: 2012-6-19 18:50
instanceOf它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据....
list就是Lis实例t的一个对象...返回值必然就是true了...

List list1=new ArrayList();
这段代码你是声明了一个List对象引用,指向一个List对象,然后用instanceOf来测试它所指向的对象是否是List类的一个实例,显然,这是真的,所以返回true....

这个应该清楚了吧?
作者: 黄奕豪    时间: 2012-6-20 07:29
晕,老兄,你也不能改了题目就改已解决吧!!下面这帮老兄多冤枉~~




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