前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Java中instanceof和isInstance区别详解

qiguaw 2024-10-08 06:50:40 资源文章 12 ℃ 0 评论

obj.instanceof(class)

判断对象是不是某种对象,这个分成三种情况

1 对象是不是本身类的对象

2 对象是不是本身接口(接口的接口)和本身父类(父类的父类)的对象

3 所有对象都是Object

class.isInstance(obj)

对象能不能被强转成对象,这个也分成三种情况

1 对象能不能被自己对象强转

2 对象能不能被自己对象所继承的类和实现的接口强转

3 对象能不能被object强转

public class X {

}

public class Y extends X {

}

public class Test {

public static void main(String[] args) {

Y y = new Y();

X x = new X();

X yx = new Y();

System.out.println("=======1=======");

System.out.println(y instanceof Y);

System.out.println(y instanceof X);

System.out.println(y instanceof Object);

System.out.println("=======2=======");

System.out.println(y.getClass().isInstance(y));

System.out.println(y.getClass().isInstance(x));

System.out.println("=======3=======");

System.out.println(x.getClass().isInstance(yx));

System.out.println(y.getClass().isInstance(yx));

System.out.println("=======4=======");

System.out.println(X.class.isInstance(x));

System.out.println(X.class.isInstance(y));

System.out.println(X.class.isInstance(yx));

System.out.println("=======5=======");

System.out.println(Y.class.isInstance(x));

System.out.println(Y.class.isInstance(y));

System.out.println(Y.class.isInstance(yx));

System.out.println("=======6=======");

System.out.println(Object.class.isInstance(y));

}

}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表