在Java中使用“instanceof”[重复]

2024-01-24

“instanceof”运算符的用途是什么? https://stackoverflow.com/questions/7313559/what-is-the-instanceof-operator-used-for

我了解到 Java 有instanceof操作员。您能否详细说明一下它的用途以及它的优点是什么?


基本上,您检查一个对象是否是特定类的实例。 当您拥有对超类或接口类型的对象的引用或参数并且需要知道实际对象是否具有其他类型(通常更具体)时,通常会使用它。

Example:

public void doSomething(Number param) {
  if( param instanceof Double) {
    System.out.println("param is a Double");
  }
  else if( param instanceof Integer) {
    System.out.println("param is an Integer");
  }

  if( param instanceof Comparable) {
    //subclasses of Number like Double etc. implement Comparable
    //other subclasses might not -> you could pass Number instances that don't implement that interface
    System.out.println("param is comparable"); 
  }
}

请注意,如果您必须经常使用该运算符,通常表明您的设计存在一些缺陷。因此,在设计良好的应用程序中,您应该尽可能少地使用该运算符(当然,该一般规则也有例外)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Java中使用“instanceof”[重复] 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 如果局部(但未使用)变量是对对象的唯一强引用,那么符合标准的 C# 编译器是否可以优化它?

    另请参阅这些相关资源 NET 垃圾收集器是否执行代码预测分析 https stackoverflow com questions 3161119 does the net garbage collector perform predicti
  • 使用 prisma 和 postgres 的行级安全性

    我正在使用带有 postgres 数据库的 prisma 和 Yoga graphql 服务器 我想为我的 graphql 查询实现授权 我看到了类似的解决方案graphql 屏蔽 https github com maticzav gra
  • Jenkins 使用 github 返回状态代码 128

    使用 GitHub 命令我有 ssh T email protected cdn cgi l email protection Hi MyName You ve successfully authenticated but GitHub d
  • Grails 集成测试和事务

    我不明白为什么这个集成测试失败 我可以通过删除 Transactional propagation Propagation REQUIRES NEW 服务方法上方的注释 或者通过设置transactional false在集成测试中 我意识
  • 过程或函数需要未提供的参数 '

    你好朋友 我面临一个将数据加载到网格视图的问题 页面加载事件调用像 loaddata 这样的一个方法 我编写了这样的代码 using SqlConnection Sqlcon new SqlConnection strCon using S
  • 如何配置 ACTION_IMAGE_CAPTURE 将照片存储在公共外部存储中?

    The 拍照简单记录 https developer android com training camera photobasics html建议将使用设备相机拍摄的图像存储为 应保存在设备上的公共外部存储中 但如何做到这一点呢 提供的示例
  • 麦克风实时音频播放。 C#

    我希望创建一个应用程序 允许我从麦克风录音并通过其他电脑播放录音 然而 此时我只想让它在我自己的计算机上播放 这样我就可以让它工作了 过去几个小时我一直在关注 NAudio 它似乎可以帮助我实现这个目标 我只是想知道其他人是否有这方面的经验
  • 如何设置 joingrid 中每个 kdeplot 的线条样式

    我正在使用seaborn创建一个具有边际分布的kdeplot 如中所述这个答案 https stackoverflow com a 49658133 1232833 我对代码做了一些修改 得到了这个 import matplotlib py
  • 例如,在 C++ 中,set precision (12) 和 set precision (012) 之间存在差异的原因是什么?

    例如 在 C 中 当您编写 set precision 12 时 12 是以 10 为底数 但是当您编写 set precision 012 时 它是一个八进制数 为什么 因为带有前导零 前导 0x 除外 的常量始终是八进制 八进制整数文字
  • 如何在android上使用socket.io和后台服务?

    我在android聊天应用程序上使用gottox socket io java client 现在我想使用socket io作为后台服务 在聊天应用程序中如果有新消息 当聊天应用程序关闭时 发送一条通知 如 聊天应用程序上的新消息 如果您想
  • 如何获取应用程序中给定目录中所有文件的文件名 NSArray?

    我想做的事情似乎很简单 在我的应用程序上的给定 目录 中获取文件名数组 但是我越多地使用 NSFileManager 和 NSBundle 我发现自己越迷失 我只想获取在我的 iPhone Xcode 项目中的特定目录中组织的文件的文件名
  • 如何检查项目的 vue.js 版本?

    I use 乌班图16 04我想知道如何检查vue js version我的项目使用的 我怎么做 让我们总结一下 jonrsharpe JamesAMohler 和 MartinCalvert 的解决方案 供寻求快速答案的朋友参考 Run
  • Guice - 使用静态辅助方法将依赖项注入到类中

    我对 Guice 还很陌生 之前没有使用过任何 DI 框架 在阅读了官方 wiki 和许多其他文档后 我仍然无法完全理解它 在我的特定情况下 我想编写一个使用其他 待注入 类的 EL taglib 函数 由于所有 taglib 函数都必须声
  • Ionic 4 标签样式

    我试图为 ionic 4 应用程序中的选项卡提供渐变背景 我还尝试为每个页面设置不同的颜色 渐变 背景 控制每个页面的 scss 中选项卡的样式 想要的效果如下 For
  • 使用 Roslyn 编译 xaml [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有办法使用Roslyn编译器来编译WPF UserControl 假设您想要编译一个包含标准 C
  • Resharper 中的 Jasmine 测试不会停止执行

    我使用 Visual Studio 2012 和 ReSharper 8 2 来测试我的 JavaScript 代码 到目前为止 使用 QUnit 工作得很好 在编写 Jasmine 测试时 当在文件开头添加以下行时 测试不会停止
  • Flexbox 等高不起作用

    我正在尝试将 flexbox 与 susy 一起使用 但不知何故它不起作用 我尝试了我在这里找到的所有问题 但它总是会中断 并且文本容器和图像容器不能保持相同的高度 移动视图从 38 em 开始工作 但不能 这就是我尝试过的 一旦我添加di
  • C++ 阻塞工作队列

    这个问题应该比我上几个简单一点 我在我的程序中实现了以下工作队列 Pool h tpool class It s always closed glasses ifndef POOL H define POOL H class tpool p
  • ImageMagick:此图像格式“”没有解码委托@ error/constitute.c/ReadImage/504

    Problem ImageMagick Convert 无法裁剪图像 看起来它不识别图像类型 我尝试过的 我在网上搜索了一下 发现了几个类似的问题 但不是我的 我尝试过他们的解决方案 包括 通过brew卸载并重新安装ImageMagick
  • 在Java中使用“instanceof”[重复]

    这个问题在这里已经有答案了 instanceof 运算符的用途是什么 https stackoverflow com questions 7313559 what is the instanceof operator used for 我了