这一章节主要讲述一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom。
例子:
package com.ray.ch12;
public class Test {
public static void main(String[] args) {
try {
Class<? extends Father> AClass1 = (Class<? extends Father>) Class
.forName("com.ray.ch12.Sub");
System.out.println(AClass1.newInstance() instanceof Sub);
System.out.println(AClass1.newInstance() instanceof Father);
System.out.println(AClass1.isInstance(new Sub()));
System.out.println(AClass1.isInstance(new Father()));
System.out.println(AClass1.isAssignableFrom(Sub.class));
System.out.println(AClass1.isAssignableFrom(Father.class));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Father {
}
class Sub extends Father {
}
输出:
true
true
true
false
true
false
1.看上面的代码的时候需要注意:
(1)instanceof参数是类
(2)isInstance后面的参数是类的对象
(3)isAssignableFrom后面的参数是类的Class对象
这三种都是检测对象类型的方法。
2.从输出结果上面看出注意的地方:
(1)instanceof是支持向上转型,因此上面的AClass1也是Father的Class类型
(2)isInstance和isAssignableFrom不支持向上转型,因此输出的时候AClass1只能是指向Sub,而认不出Father。
总结:这一章节主要展示一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom,以及相应的注意点。
这一章节就到这里,谢谢。
-----------------------------------
目录
分享到:
相关推荐
总结来说,`instanceof`关键字是Java中用于运行时类型检查的重要工具,它可以帮助开发者确保代码的正确性和灵活性。通过结合实例代码,你可以更深入地理解`instanceof`的工作原理及其在实际项目中的应用。本教程提供...
在前端面试中,手写instanceof不仅考察了应聘者对JavaScript原型链和继承机制的理解,还考察了其编程逻辑思维和代码实现能力。通过这种方式,面试官可以评估应聘者是否具备编写高质量代码的基础素质。因此,掌握...
在Java编程语言中,`instanceof` 和 `Class.isInstance()` 都是用来判断对象是否属于特定类型的工具,但它们之间存在一些微妙的区别。下面将详细解释这两种操作符的用法和差异。 首先,`instanceof` 关键字是Java...
- Pattern Matching for 'instanceof':使得类型检查更加简洁和安全。 - 更多的JEPs(Java Enhancement Proposals)提供了性能优化和API扩展。 总的来说,这个压缩包提供了Java开发所需的全套工具,使得开发者可以...
计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi
Java是一种广泛使用的编程语言,以其跨平台性、稳定性和丰富的库而闻名。Java-17是Java的一个重要版本,属于Java SE(标准版)的一部分,提供了许多新特性、改进和性能优化。本资源包旨在帮助你顺利安装Java开发工具...
1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什
java学习-java中的继承extents和instanceof关键字
6. **Java新特性支持**:2021年的版本很可能包含了对Java新特性的支持,例如Java 14和Java 15中的Records、Pattern Matching for instanceof、Text Blocks等,这些新特性可以提高代码的简洁性和可读性。 7. **性能...
本次教程的主题围绕着Java中的高级类概念展开,具体包括类构造函数、`this`关键字、静态属性和方法、`instanceof`运算符等内容。这些知识点对于深入理解Java面向对象编程至关重要。 #### 二、类构造函数 构造函数是...
instanceof 马克-to-win java视频的详细的描述介绍
阿里巴巴作为全球领先的互联网企业,其在软件开发方面积累了丰富的经验和规范,其中最为人所知的就是《阿里巴巴Java编码规范》。这个规范不仅对内部开发人员有着严格的约束,也对外界开发者开放,以促进整个Java社区...
总的来说,`instanceof`运算符是Java中实现多态性和运行时类型检查的关键工具。在农业信息系统的开发中,利用它能够灵活地处理各种类型的农业对象,提高了代码的可扩展性和适应性。同时,结合强制类型转换,可以确保...
2. **Pattern Matching for instanceof**:这个新特性允许开发者在使用`instanceof`关键字时进行模式匹配,提高了代码的可读性和安全性。例如,可以直接检查对象是否是特定类型并同时解构它。 3. **JVM常量动态链接...
Java Development Kit (JDK) 是Java编程语言的核心组件,它包含了一系列工具和库,使开发人员能够编写、编译、调试和运行Java应用程序。Oracle JDK是Java的官方实现,提供了高质量的性能和稳定性。在本资源中,我们...
Java JDK 14是Java开发工具包的第14个主要版本,它是Java SE(标准版)平台的核心组成部分,用于开发和运行Java应用程序。JDK是Java程序员的必备工具,包含了编译器、调试器、Java运行时环境(JRE)以及一系列用于...
在"288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288)"这个教程中,我们将深入探讨`instanceof`的用法和它在实际编程中的应用。 `instanceof`的基本语法是`object instanceof ClassName`,这里的`...
Oracle和Java社区将继续推动Java语言的发展,引入新的特性和改进。 八、总结 Java 14中的语言更新为Java开发者带来了许多新的特性和改进。这些特性和改进使得Java语言变得更加强大和灵活,为开发者提供了更好的...
JDK 15 Java SE 语言更新 Java Platform, Standard Edition 是 ...JDK 15 中的语言更新是 Java 语言发展的重要一步,这些更新提高了 Java 编程语言的功能和性能,为开发者提供了更加简洁、易读和高效的编程体验。