instanceof

instanceof原理 一、instanceof原理: 作用: ①用于判断某个实例是否属于某构造函数 ②在继承关系中用来判断一个实例是否属于它的父类型或者祖先类型的实例 查找构造函数的原型对象是否在实例对象的原型链上,如果在返回true,如果不在返回false。 说白了,只要右边变量的 prototype 在左边变量的原型链上即可。因此,instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype,如果查找失败,则会返回 false。 var obj = new Object() obj 阅读详情

instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。可以用在继承中的子类的实例是否为父类的实现。相当于c#中的is操作符。

示例

  举个例子:

  String s = "I AM an Object!";

  boolean isObject = s instanceof Object;

  我们声明了一个String对象引用,指向一个String对象,然后用instanceof来测试它所指向的对象是否是Object类的一个实例,显然,这是真的,所以返回true,也就是isObject的值为true。

  instanceof有一些用处。比如我们写了一个处理账单的系统,其中有这样三个类:

  public class Bill {//省略细节}

  public class PhoneBill extends Bill {//省略细节}

  public class GasBill extends Bill {//省略细节}

  在处理程序里有一个方法,接受一个Bill类型的对象,计算金额。假设两种账单计算方法不同,而传入的Bill对象可能是两种中的任何一种,所以要用instanceof来判断:

  public double calculate(Bill bill) {

  if (bill instanceof PhoneBill) {

  //计算电话账单

  }

  if (bill instanceof GasBill) {

  //计算燃气账单

  }

  ...

  }

  这样就可以用一个方法处理两种子类。

  然而,这种做法通常被认为是没有好好利用面向对象中的多态性。其实上面的功能要求用方法重载完全可以实现,这是面向对象编程应有的做法,避免回到结构化编程模式。只要提供两个名字和返回值都相同,接受参数类型不同的方法就可以了:

  public double calculate(PhoneBill bill) {

  //计算电话账单

  }

  public double calculate(GasBill bill) {

  //计算燃气账单

  }

  所以,使用instanceof在绝大多数情况下并不是推荐的做法,应当好好利用多态。

  instanceof 一般情况下 用在对象类型的强制转换 ,

  例如:

  继承关系 class Manager extends Employee

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

  public void doSomething(Employee e) {

  if ( e instanceof Manger){

  Manager m = (Manager) e ;

  }

  }

UE4入门实例17(Unreal制作卡通Post Process材质球) 效果展示 #1 创建Post Porcess材质球 #2 编写Shader功能 #3 设置场景区域内风格化渲染 #1 创建Post Porcess材质球 #2 编写Shader功能 创建基础效果 移除现有通道渲染 设置视图渲染范围 #3 设置场景区域内风格化渲染 #4 加群下载Shader源码:284105567 ... 阅读详情

相关推荐

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

leaning_java的博客 1228

java 类型信息 instanceof 和 isInstance区别

class A{ } class B extends A { } class C extends B { } public class tt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub C c = n

chivalry 3万+

大模型——Ollama简明教程

在这篇文章中,我们将了解如何使用 Ollama、如何在 Ollama 中创建自己的模型 以及如何使用 Ollama 构建聊天机器人。这是深入研究 Ollama 的第一部分,以及我所学到的有关本地 LLM 的知识以及如何将它们用于基于推理的应用程序。在这篇文章中,你将了解——

1691

返回结果是一个对象obj,但是obj instanceOf Object返回false

今天在使用koa的使用,为了判断传入参数中是否正确,使用了object的hasOwnPrototype,但是却发现代码报错了。 首先获取到参数:var params = ctx.query; 然后判断返回对象中是否存在指定参数,如user参数:params.hasOwnPrototype("user") 最后执行的时候,发现代码报错 执行params instanceOf Object,发现返回的...

这个昵称没有被占用吧的博客 3188

STM32F401RCT6最小系统原理图设计

STM32F401RCT6最小系统原理图设计一、主控芯片二、电源电路三、晶振电路三、下载电路四、完整电路图      本文章基于STM32F401RCT6进行最小系统原理图设计,包含主控芯片,电源,晶振电路,下载电路等几部分 一、主控芯片 主控芯片采用STM32F401RCT6,需注意: VBAT在不接电池的情况下需接3.3V,VDDAVREF+需接3.3V,否则会造成芯片供电不正常,无法启动和识别的情况 VDDAVREF+和VCAP1处电容需按照规格书

weixin_43278295的博客 2万+

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

instanceof 判断键值是否为某一类型

这种用Object 来接收(开时不知道具体类型),想转为其他类型必须先用instanceof 来判断一下在转不然容易报类型转换错误!!! Map map; Object get = map.get(Object key); //指定Map集合中的键名。 if (get instanceof String) { //判断键对应的值是否为String类型 String val...

weixin_41987908的博客 541

康耐视visionpro-CogBlobTool工具详细说明

康耐视visionpro-CogBlobTool工具详细说明

视觉人机器视觉的博客 1726

instanceof用法

instanceof是Java的一个二元操作符,和==,>,<是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。 举个例子:   String s = "I AM an

Ray的专栏 1万+

海格通信嵌入式面试题及参考答案

计算电路的最高工作频率如何计算? 计算电路的最高工作频率主要考虑电路中的关键路径延迟。关键路径是指在整个电路中,信号传播延迟最长的路径。电路的最高工作频率的倒数就是时钟周期,而时钟周期必须大于关键路径的延迟时间。 首先要确定电路中各个模块的延迟。比如对于组合逻辑电路,可以通过查看芯片手册获取门电路的延迟参数。以一个简单的与门、或门、非门组成的组合逻辑为例,每个门都有自己的传输延迟,把信号从输入到输出经过的所有门的延迟相加,就得到这部分组合逻辑的延迟。 对于包含寄存器的电路,还需要考虑寄

大模型大数据攻城狮的专栏 1271

小波变换(深入浅出)

小波变换

weixin_46713695的博客 3万+

java中instanceof用法

instanceof 是java的保留关键字。他的作用就是测试左边的对象是不是右边类的实例,是的话就返回true,不是的话返回false。 也就是说,比如一个表达式: boolean b = object instanceof class 左边是对象,右边是类,结果是boolean。 这里要注意: 类的实例包括本身的实例,以及所有直接或间接子类的实例 instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误 用法: 左边的对象实例不能是

weixin_45865760的博客 2万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java之instanceof

java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。 也就是说: 使用instanceof关键字做判断时, instanceof 操作符的左右操作数必须有继承或实现关系 下面我们用继承树来判断instanceof的返回值: inter...

Jack 4万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

java中 instanceof 的用法

引言 instanceof 概念在多态中引出,因为在多态发生时,子类只能调用父类中的方法(编译时类型的方法),而子类自己独有的方法(运行时类型的方法)无法调用,如果强制调用的话就需要向下转型,语法和基本类型的强制类型转换一样;但是向下转型具有一定的风险,很有可能无法成功转化,为了判断能否成功转化,就需要 instanceof 先进行一个判断,然后再进行转换操作; instanceof 基本介绍 instanceof 是一个运算符,语法为: 引用类型变量(object) instanceof 类(class)

YXXXYX的博客 6万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Object instanceof Function和Function instanceof Object

Object, Function, Array等等这些都被称作是构造“函数”,他们都是函数。而所有的函数都是构造函数Function的实例。从原型链机制的的角度来说,那就是说所有的函数都能通过原型链找到创建他们的Function构造函数的构造原型Function.protorype对象,所以: alert(Object instanceof Function);// return true 与此同...

weixin_33704591的博客 2953

typeof VS instanceof

读完此篇博客,你会了解到如下内容: typeof 是否能正确判断类型? instanceof 能正确判断对象的原理是什么? typeof 对于原始类型来说,除了 null 都可以显示正确的类型 typeof 1 // 'number' typeof '1' // 'string' typeof undefined // 'undefined' typeof true // 'boolean' ty...

吴小迪的博客 2万+

详解JS中的instanceof使用及手写instanceof

instanceof 是什么? instanceof 是用来判断左侧对象是否是右侧构造函数的实例化对象,或则说左侧对象能否通过其隐式原型 **[[proto]]**在原型链上一层层向上查找到右侧函数的原型对象,即函数原型对象出现在实例对象的原型链上就返回 true。 通俗的理解: 右侧是不是左侧的爸爸、爷爷、祖宗,只要左侧对象继承自右侧函数就为 true instanceof 使用方式: object instanceof 构造函数,左侧必须为对象类型,右侧必须为函数类型。手撕instanceof, 原理

qq_40868156的博客 1万+

【PHP内核】运算符:instanceof的内核实现

PHP中有个类型运算符instanceof 用于确定一个 PHP 变量是否属于某一类 class

盘古大叔 2328

java instanceof 数组_Java关键字——instanceof

instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确...

weixin_42324002的博客 2149

java instanceof 泛型_有关instanceof及泛型类型信息的探究

在课上学习泛型时,老师提到不能使用instanceof这个运算符来检验泛型类型的信息,因为“运行时泛型消失了”:我有点不太明白这句话该怎么理解:消失的到底是什么东西?instanceof又是什么?而且后面又一次出现instanceof时我们被告诫尽量避免使用这个运算符,这让我感到很奇怪(注:下图中instanceof后面不应该有括号,它是个运算符而不是方法):一方面我不知道这个东西到底怎么使用,另...

weixin_29770217的博客 2967

java instanceof 数组_【Java基础】-- instanceof 用法详解

1. instanceof关键字如果你之前一直没有怎么仔细了解过instanceof关键字,现在就来了解一下:instanceof其实是java的一个二元操作符,和=,这些是类似的,同时它也是被保留的关键字,主要的作用,是为了测试左边的对象,是不是右边的类的实例,返回的是boolean值。A instanceof B注意:A是实例,而B则是Class类下面使用代码测试一下:class A{}int...

weixin_39770226的博客 1712

java instanceof性能差_在J中使用instanceof的性能影响

在J中使用instanceof的性能影响我正在开发一个应用程序,一种设计方法涉及到instanceof运算符的极大使用。 虽然我知道OO设计通常会试图避免使用instanceof,但这是一个不同的故事,这个问题纯粹与性能有关。 我想知道是否有任何性能影响? 是和==一样快吗?例如,我有一个包含10个子类的基类。 在一个获取基类的函数中,我会检查该类是否是子类的实例并执行一些例程。我想解决它的另一种...

weixin_30675619的博客 1068

js--浅谈instanceof的底层实现原理、手动实现一个instanceof

转自https://blog.youkuaiyun.com/qq_38722097/article/details/80717240 www.cnblogs.com/yalong/p/10… typeof 实现原理 typeof一般被用于判断一个变量的类型,我们可以利用typeof来判断number、string、object、boolean、function、undefined、symbol这七种类型。当判...

weixin_34290352的博客 1816

java中instanceof 详解_java中的instanceof用法详解

instanceof是Java的一个二元操作符(运算符),也是Java的保留关键字。它的作用是判断其左边对象是否为其右边类的实例,返回的是boolean类型的数据。用它来判断某个对象是否是某个Class类的实例。用法:boolean result = object instanceof class参数:result:boolean类型。object:必选项。任意对象表达式。class:必选项。...

weixin_29577613的博客 2886
上一篇: Object转换为String的总结
下一篇: js中的日期处理
msg_java2011
博客等级 码龄15年 18粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值