服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|

服务器之家 - 编程语言 - JAVA教程 - 详谈Java中instanceof和isInstance的区别

详谈Java中instanceof和isInstance的区别

2020-07-27 14:07jingxian JAVA教程

下面小编就为大家带来一篇详谈Java中instanceof和isInstance的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一次性搞定instanceofisInstance,instanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法:

obj.instanceof(class)

也就是说这个对象是不是这种类型,

1. 一个对象是本身类的一个对象

2. 一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象

3. 所有对象都是Object

4. 凡是null有关的都是false  null.instanceof(class)

class.inInstance(obj)

这个对象能不能被转化为这个类

1. 一个对象是本身类的一个对象

2. 一个对象能被转化为本身类所继承类(父类的父类等)和实现的接口(接口的父接口)强转

3. 所有对象都能被Object的强转

4. 凡是null有关的都是false   class.inInstance(null)

类名.class和对象.getClass()几乎没有区别,因为一个类被类加载器加载后,就是唯一的一个类。

一个实例搞定:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class A {
}
 
class B extends A {
}
 
public class Test {
  public static void main(String[] args) {
 
    B b = new B();
    A a = new A();
    A ba = new B();
    System.out.println("1------------");
    System.out.println(b instanceof B);
    System.out.println(b instanceof A);
    System.out.println(b instanceof Object);
    System.out.println(null instanceof Object);
    System.out.println("2------------");
    System.out.println(b.getClass().isInstance(b));
    System.out.println(b.getClass().isInstance(a));
    System.out.println("3------------");
    System.out.println(a.getClass().isInstance(ba));
    System.out.println(b.getClass().isInstance(ba));
    System.out.println(b.getClass().isInstance(null));
    System.out.println("4------------");
    System.out.println(A.class.isInstance(a));
    System.out.println(A.class.isInstance(b));
    System.out.println(A.class.isInstance(ba));
    System.out.println("5------------");
    System.out.println(B.class.isInstance(a));
    System.out.println(B.class.isInstance(b));
    System.out.println(B.class.isInstance(ba));
    System.out.println("6------------");
    System.out.println(Object.class.isInstance(b));
    System.out.println(Object.class.isInstance(null));
  }
}

运行结果:

详谈Java中instanceof和isInstance的区别

以上这篇详谈Java中instanceof和isInstance的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程Javascript和Java语言有什么关系?两种语言间的异同比较

    Javascript和Java语言有什么关系?两种语言间的异同比较

    虽然Javascript与Java有紧密的联系,但却是两个公司开发的不同的两个产品。那么js和java有什么关系,两种语言的不同点是什么呢?介于这两个问题,小编一...

    vieworgo2552020-06-17
  • JAVA教程Maven中央仓库地址配置大全

    Maven中央仓库地址配置大全

    这篇文章主要介绍了Maven中央仓库地址配置大全,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    星朝2482020-07-01
  • JAVA教程java反射原理制作对象打印工具

    java反射原理制作对象打印工具

    本文主要给大家介绍了java反射原理制作对象打印工具的方法和代码,以及一个热心网友给出的更加简洁方便的代码,小伙伴们需要的话可以参考下。 ...

    hebedich4152020-03-08
  • JAVA教程简单学习Java+MongoDB

    简单学习Java+MongoDB

    本文给大家介绍的是如何简单的使用java+MongoDB实现数据调用的问题,非常的实用,有需要的小伙伴可以参考下 ...

    hebedich1702020-04-14
  • JAVA教程Java建造者设计模式详解

    Java建造者设计模式详解

    这篇文章主要为大家详细介绍了Java建造者设计模式,对建造者设计模式进行分析理解,感兴趣的小伙伴们可以参考一下 ...

    lijiao3052020-03-27
  • JAVA教程Java实现的矩阵乘法示例

    Java实现的矩阵乘法示例

    这篇文章主要介绍了Java实现的矩阵乘法,简单描述了矩阵乘法的原理,并结合实例形式分析了java实现矩阵乘法的相关操作技巧,需要的朋友可以参考下...

    水中鱼之19995482019-06-23
  • JAVA教程java编程中流对象选取规律详解

    java编程中流对象选取规律详解

    下面小编就为大家带来一篇java编程 中流对象选取规律详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    java教程网3382020-07-25
  • JAVA教程java如何对map进行排序详解(map集合的使用)

    java如何对map进行排序详解(map集合的使用)

    这篇文章主要介绍了java如何对map进行排序,java map集合的使用详解,大家可以参考使用 ...

    java技术网2812019-10-22