`
李灵晖-raylee
  • 浏览: 138546 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

从头认识java-12.3 instanceof、isInstance和isAssignableFrom

 
阅读更多

这一章节主要讲述一下三个检测对象类型的方法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,以及相应的注意点。


这一章节就到这里,谢谢。

-----------------------------------

目录


分享到:
评论

相关推荐

    Java 实例 - instanceof 关键字用法源代码-详细教程.zip

    总结来说,`instanceof`关键字是Java中用于运行时类型检查的重要工具,它可以帮助开发者确保代码的正确性和灵活性。通过结合实例代码,你可以更深入地理解`instanceof`的工作原理及其在实际项目中的应用。本教程提供...

    08-手写instanceof.md

    在前端面试中,手写instanceof不仅考察了应聘者对JavaScript原型链和继承机制的理解,还考察了其编程逻辑思维和代码实现能力。通过这种方式,面试官可以评估应聘者是否具备编写高质量代码的基础素质。因此,掌握...

    详谈Java中instanceof和isInstance的区别

    在Java编程语言中,`instanceof` 和 `Class.isInstance()` 都是用来判断对象是否属于特定类型的工具,但它们之间存在一些微妙的区别。下面将详细解释这两种操作符的用法和差异。 首先,`instanceof` 关键字是Java...

    eclipse-java-neon-R-win32-x86_64.zip

    - Pattern Matching for 'instanceof':使得类型检查更加简洁和安全。 - 更多的JEPs(Java Enhancement Proposals)提供了性能优化和API扩展。 总的来说,这个压缩包提供了Java开发所需的全套工具,使得开发者可以...

    计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi

    计算机后端-Java-Java核心基础-第14章 面向对象06 05. instanceof关键字的使用.avi

    学习 java-17 的安装资源包

    Java是一种广泛使用的编程语言,以其跨平台性、稳定性和丰富的库而闻名。Java-17是Java的一个重要版本,属于Java SE(标准版)的一部分,提供了许多新特性、改进和性能优化。本资源包旨在帮助你顺利安装Java开发工具...

    Damaer#Coding#instanceof用法详解1

    1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什

    java学习-java中的继承extents和instanceof关键字

    java学习-java中的继承extents和instanceof关键字

    Java编译器 java-2021-03.rar

    6. **Java新特性支持**:2021年的版本很可能包含了对Java新特性的支持,例如Java 14和Java 15中的Records、Pattern Matching for instanceof、Text Blocks等,这些新特性可以提高代码的简洁性和可读性。 7. **性能...

    Java语言基础入门教程 Java实训教程 4.类构造函数-this-静态属性方法-instanceof运算符共55页.pptx

    本次教程的主题围绕着Java中的高级类概念展开,具体包括类构造函数、`this`关键字、静态属性和方法、`instanceof`运算符等内容。这些知识点对于深入理解Java面向对象编程至关重要。 #### 二、类构造函数 构造函数是...

    instanceof关键字---马克-to-win java视频

    instanceof 马克-to-win java视频的详细的描述介绍

    Alibaba-Java-Coding-Guidelines-1.0.3.zip

    阿里巴巴作为全球领先的互联网企业,其在软件开发方面积累了丰富的经验和规范,其中最为人所知的就是《阿里巴巴Java编码规范》。这个规范不仅对内部开发人员有着严格的约束,也对外界开发者开放,以促进整个Java社区...

    Java面向对象程序设计-instanceof运算符.pptx

    总的来说,`instanceof`运算符是Java中实现多态性和运行时类型检查的关键工具。在农业信息系统的开发中,利用它能够灵活地处理各种类型的农业对象,提高了代码的可扩展性和适应性。同时,结合强制类型转换,可以确保...

    java-14-openjdk-14.0.2.12-1.windows.redhat.x86_64.zip

    2. **Pattern Matching for instanceof**:这个新特性允许开发者在使用`instanceof`关键字时进行模式匹配,提高了代码的可读性和安全性。例如,可以直接检查对象是否是特定类型并同时解构它。 3. **JVM常量动态链接...

    JAVA-JDK-14-WIN.rar

    Java Development Kit (JDK) 是Java编程语言的核心组件,它包含了一系列工具和库,使开发人员能够编写、编译、调试和运行Java应用程序。Oracle JDK是Java的官方实现,提供了高质量的性能和稳定性。在本资源中,我们...

    java-jdk14jar包下载

    Java JDK 14是Java开发工具包的第14个主要版本,它是Java SE(标准版)平台的核心组成部分,用于开发和运行Java应用程序。JDK是Java程序员的必备工具,包含了编译器、调试器、Java运行时环境(JRE)以及一系列用于...

    288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288).rar

    在"288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288)"这个教程中,我们将深入探讨`instanceof`的用法和它在实际编程中的应用。 `instanceof`的基本语法是`object instanceof ClassName`,这里的`...

    JDK14-java-se-language-updates.pdf

    Oracle和Java社区将继续推动Java语言的发展,引入新的特性和改进。 八、总结 Java 14中的语言更新为Java开发者带来了许多新的特性和改进。这些特性和改进使得Java语言变得更加强大和灵活,为开发者提供了更好的...

    JDK15-java-se-language-updates.pdf

    JDK 15 Java SE 语言更新 Java Platform, Standard Edition 是 ...JDK 15 中的语言更新是 Java 语言发展的重要一步,这些更新提高了 Java 编程语言的功能和性能,为开发者提供了更加简洁、易读和高效的编程体验。

Global site tag (gtag.js) - Google Analytics