instanceof、isInstance、isAssignableFrom的区别!

简介: instanceof、isInstance、isAssignableFrom这几个有没有接触过,或者接触过部分?

a instanceof B


a是B的实例,B是类或者接口、父类或父接口,即B c = a成立。


B.class.isInstance(a)


这个叫动态等价,效果和上面等价,一般用于检查泛型,如jdk中CheckedMap里面用到这个检查Map里面的key、value类型是否和约定的一样。

image.png

A.class.isAssignableFrom(B)

两个class的类型关系判断,判断B是不是A的子类或子接口

演示

先看看下面的例子就会明白它们各自的用途和含义。

User:用户基类

PrivateUser:私人用户子类,继承User类

PrivateUser priUser = new PrivateUser();
System.out.println(priUser instanceof User);// true
System.out.println(User.class.isInstance(priUser));// true
System.out.println(User.class.isAssignableFrom(PrivateUser.class));// true
System.out.println(PrivateUser.class.isAssignableFrom(User.class));// false

推荐去我的博客阅读更多:


1.Java JVM、集合、多线程、新特性系列教程


2.Spring MVC、Spring Boot、Spring Cloud 系列教程


3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程


4.Java、后端、架构、阿里巴巴等大厂最新面试题


觉得不错,别忘了点赞+转发哦!

目录
相关文章
|
2月前
|
缓存 安全 Java
《深入理解Spring》过滤器(Filter)——Web请求的第一道防线
Servlet过滤器是Java Web核心组件,可在请求进入容器时进行预处理与响应后处理,适用于日志、认证、安全、跨域等全局性功能,具有比Spring拦截器更早的执行时机和更广的覆盖范围。
|
Java Spring 容器
【Java】Spring如何扫描自定义的注解?
【Java】Spring如何扫描自定义的注解?
421 0
|
9月前
|
NoSQL Java Redis
springboot怎么使用Redisson
通过以上步骤,已经详细介绍了如何在Spring Boot项目中使用Redisson,包括添加依赖、配置Redisson、创建配置类以及使用Redisson实现分布式锁和分布式集合。Redisson提供了丰富的分布式数据结构和工具,可以帮助开发者更高效地实现分布式系统。通过合理使用这些工具,可以显著提高系统的性能和可靠性。
3167 34
|
Java Spring
@Async 的实现原理是什么?
【8月更文挑战第17天】@Async 的实现原理是什么?
297 3
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
29568 0
|
缓存 Java 编译器
1.SpringBoot01-自定义注解
1.SpringBoot01-自定义注解
974 0
|
缓存 监控 API
Opentelemetry Metrics API
Opentelemetry Metrics API
170 1
springboot和elasticsearch以及springboot data elasticsearch对应的版本
springboot和elasticsearch以及springboot data elasticsearch对应的版本
995 1
|
存储 Java
SpringBoot中过滤器如何设置执行顺序
SpringBoot中过滤器如何设置执行顺序
1361 0
|
人工智能 算法 开发工具
通义千问1.5(Qwen1.5)大语言模型在PAI-QuickStart的微调与部署实践
Qwen1.5(通义千问1.5)是阿里云最近推出的开源大型语言模型系列。作为“通义千问”1.0系列的进阶版,该模型推出了多个规模,从0.5B到72B,满足不同的计算需求。此外,该系列模型还包括了Base和Chat等多个版本的开源模型,为全球的开发者社区提供了空前的便捷性。阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对Qwen1.5模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现Qwen1.5系列模型的微调和快速部署。