如何使用instanceof操作符判断对象类型
来源:互联网 发布:java中i和 i的区别 编辑:程序博客网 时间:2024/06/03 15:24
当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以在执行向下转型之前需要养成一个良好的习惯,就是判断父类对象是否为子类对象的实例。这个判断通常使用instanceof操作符来完成,可以使用instanceof操作符判断是否一个类实现了某个接口,也可以用它来判断一个实例对象是否属于一个类。
instanceof的语法格式如下:
myobject instanceof ExampleClass;
myObject:某类的对象的引用。
ExampleClass:某个类。
使用instanceof操作符的表达式返回值为布尔值,如果返回值为true,说明myobject对象为ExampleClass的实例对象,如果返回值为false,说明myobject对象不是ExampleCLass的实例对象。
例1;在项目中创建parallelogram类和3个内部类Quadrangle、Square、Anything。其中Parallelogram类和Square类继承Quadragle类,在Parallelogram类的主方法中分别创建这些类的对象,然后使用instanceof操作符判断他们的类型并输出结果;
class Quadrangle { public static void draw(Quadrangle q) { // SomeSentence }}class Square extends Quadrangle { // SomeSentence}class Anything { // SomeSentence}public class Parallelogram extends Quadrangle { public static void main(String args[]) { Quadrangle q = new Quadrangle(); // 实例化父类对象 // 判断父类对象是否为Parallelogram子类的一个实例 if (q instanceof Parallelogram) { Parallelogram p = (Parallelogram) q; // 向下转型操作 } // 判断父类对象是否为Parallelogram子类的一个实例 if (q instanceof Square) { Square s = (Square) q; // 进行向下转型操作 } // 由于q对象不为Anything类的对象,所以这条语句是错误的 // System.out.println(q instanceof Anything); }}
在主方法中首先创建四边形类对象,然后使用instanceof操作符判断四边形类对象是否为平行四边形类的一个实例,是否为正方形类的一个实例,如果判断结果为true,将进行向下转型操作。
阅读全文
0 0
- 如何使用instanceof操作符判断对象类型
- 使用instanceof操作符判断对象类型
- instanceof判断对象类型
- 利用instanceof操作符判断Java数组的类型
- PHP强制对象类型之instanceof操作符
- 使用instanceof关键字判断实例的类型
- instanceof 判断类型
- Java 判断对象类型instanceof 【多态扩展】
- JavaScript: 使用typeof和instanceof操作符检测数值类型和引用类型变量
- Java实例instanceof类型判断
- JS instanceof 判断类型 问题
- typeof constructor instanceof 判断类型
- 如何判断对象类型/对typeof方法使用认识
- 在java中怎么理解“用instanceof操作符判断父类对象是否为子类的一个实例”?
- java(instanceof操作符、对象类型转换 、final 关键字、final,finally,finalize的区别、static关键字,修饰符 )
- java学习之路 之 高级类特性1-instanceof操作符、对象类型转换(造型)
- Flex的四种判断对象类型的方式 as instanceof is typeof比较
- js中判断一个对象的类型的方法typeof/constructor/instanceof
- 文章标题
- IBM与麻省理工学院联合建立AI实验室 承诺投资2.4亿美元
- poj 3094 Quicksum
- 最优间隔分类、原始/对偶问题、SVM对偶—斯坦福ML公开课笔记7
- 动态规划——最长上升子序列
- 如何使用instanceof操作符判断对象类型
- head first java 笔记 chapter 11~12
- 226. Invert Binary Tree
- nyist oj 17 单调递增最长子序列 (动态规划经典题)
- 八种架构设计模式及其优缺点概述
- 网络信息安全攻防学习平台上传关
- pyCharm常用快捷键及常用设置(自动保存,字体大小、样式,主题)
- Java toString的调用
- Servlet的生命周期