首页 > 编程语言 >[Java]instanceof和getClass()的区别

[Java]instanceof和getClass()的区别

时间:2023-05-23 17:33:03浏览次数:32  
标签:instanceof Java o2 getClass true class o1


getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.

 

class A { }

class B extends A { }

Object o1 = new A();
Object o2 = new B();

o1 instanceof A => true
o1 instanceof B => false
o2 instanceof A => true // <================ HERE
o2 instanceof B => true

o1.getClass().equals(A.class) => true
o1.getClass().equals(B.class) => false
o2.getClass().equals(A.class) => false // <===============HERE
o2.getClass().equals(B.class) => true

标签:instanceof,Java,o2,getClass,true,class,o1
From: https://blog.51cto.com/u_16125990/6333772

相关文章

  • java api调用kafka
    已经启用了zookeeper和kafka单机的ip为192.168.80.128加入maven的pom.xml代码如下 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.8.2.1</version&g......
  • Java图像二值化,并裁去白边
    手写签名场景,为更符合签名效果,节省服务器存储空间,将原图二值化后,再将多于空白去裁去。java中图像二值化有个小技巧,能够很方便将图像二值化,不用再重费心思去研究二值化过程,技巧在这个参数BufferedImage.TYPE_BYTE_BINARY 1packagecom.test;23importjava.awt.Color;......
  • 【Java Web】MultipartFile和byte[]互转
    接口接收文件@RequestParam("file")MultipartFilefileMultipartFile转byte[]Stringname=file.getName();StringoriginalFilename=file.getOriginalFilename();StringcontentType=file.getContentType();Stringbytes=file.getBytes();byte[]转Multipar......
  • javascript中的错误类型
    javascript中的错误类型:SyntaxErrorTypeErrorReferenceErrorRangeErrorURLErrorErrorSyntaxError语法错误//当您在编写一个函数时忘记了括号,)来括起您的代码,您将收到一个SyntaxError错误functionsay(text){returntext;}say('shark';//outputUncaug......
  • java.sql.SQLException: Access denied for user 'root'@'localhost' (using password
    org.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cause:java.sql.SQLException:Accessdeniedforuser'root'@'localhost'(usingpassword:YES)###Theerrormayexistincom/itheima/mapper/BrandMapper.j......
  • org.springframework.data.annotation.Transient 和 javax.persistence.Transient 的
    1、org.springframework.data.annotation.Transient 和 javax.persistence.Transient 都是用于标记一个属性不需要被持久化到数据库中的注解。它们的区别在于它们所处的框架和使用场景。org.springframework.data.annotation.Transient 是SpringDataJPA框架提供的注解,用......
  • java入门
    java简介:1.什么是程序:程序通常指完成某些事情的一种既定方式和过程;(方式){细节1;细节2;细节3}(过程){第一步;第二步;第三步}2.java的产生:1995年诞生。java之父高斯林3.java的发展史:java诞生于1995年。java目前在企业开发过程中,使用和占有率最高的是jdk1.84.java的技术平台:java技术平......
  • java 给实体类赋默认值通用方法
    importjava.lang.reflect.Field;importjava.lang.reflect.Modifier;importjava.math.BigDecimal;importjava.sql.Date;importjava.sql.Timestamp;importjava.util.ArrayList;importjava.util.List;/***使用反射给实体类k赋值(默认值)*insertupdate会报null......
  • java中运行指令浅析
    后续业务可能需要在程序中运行指令,所以这里简单探究了一下,分别从win和linux两个平台进行研究,又以为java是跨平台语言,可能二者之间的区别应该只是返回内容与输入指令的不同.(还不是在win上开发)1.如何使用Runtime.getRuntime().exec("notepad");RuntimeUtil.exec(......
  • Java 局部变量
     局部变量声明在方法、构造方法或者语句块中。局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。局部变量必须在使用前声明,并且不能被访问修饰符修饰,因为它们的作用域已经被限制在了声明它们的方法、代码块或构造函数中。局部变量只在......