转换为具体类并调用 Java 中的方法

2024-04-18

假设我们有一个名为A和一些子类(B,C,D, ETC。)。大多数子类都有这个方法do()但基类没有。 班级AA提供了一个方法叫做getObject(),这将创建一个类型的对象B, or C or D等,但将对象作为类型返回A.

如何将返回的对象转换为具体类型并调用它do()方法,请问这个方法可以吗?

EDIT: 我不被允许改变类的实现A、子类或AA,因为我使用的是封闭源 API。是的,它确实存在一些设计问题,如您所见。


你可以测试instanceof并致电do()方法:

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

转换为具体类并调用 Java 中的方法 的相关文章

  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 无法加载 jar 文件的主类

    我使用 Eclipse IDE 开发了一个应用程序 创建应用程序后 我以 jar 格式导出项目 当我尝试运行此 jar 文件时 出现错误 无法加载主类 请帮忙 当您将项目导出为 jar 时 请参阅此所以问题 https stackoverf
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • 如何解决 onEditCommit 事件上的类型不匹配错误?

    我在 Fxml 中使用 onEditCommit 事件在用户编辑数据后检索数据 FXML 代码
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 将 RSA 密钥从 BigIntegers 转换为SubjectPublicKeyInfo 形式

    WARNING 最初的问题是关于 PKCS 1 编码密钥 而问题中的实际示例需要SubjectPublicKeyInfo X 509 编码密钥 我目前正致力于在 java 中从头开始实现 RSA 算法 特别是密钥生成方面 现在我的代码可以给
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 子集和问题

    最近我对子集和问题感兴趣 即在超集中找到零和子集 我在SO上找到了一些解决方案 此外 我还遇到了一个特定的问题solution http www skorks com 2011 02 algorithms a dropbox challen
  • 在多个子文件夹中搜索文件的VBA宏

    我有宏 如果我放入文件的单元格 E1 名称 则通过 C Users Marek Desktop Makro 目录进行宏搜索 找到它并将所需的值放入带有宏的原始文件的特定单元格中 是否可以在没有特定文件夹位置的情况下完成这项工作 我需要一些可
  • GCC ARM 汇编预处理器宏

    我正在尝试使用汇编 ARM 宏进行定点乘法 define MULT a b asm volatile SMULL r2 r3 0 1 n t ADD r2 r2 0x8000 n t ADC r3 r3 0 n t MOV 0 r2 ASR
  • 将集合从后台工作者 DoWork 传递到后台工作者已完成并执行 foreach

    我的目标是 用户在组合框中键入完整或部分计算机名 按钮单击事件启动后台工作人员将计算机名传递给 DoWork 方法 DoWork 方法在 ActiveDirectory 中搜索计算机名并将集合传递给 WorkerCompleted 方法 W
  • 动态IP地址的用户可以被阻止吗?

    现在我正在尝试构建一些东西 我的客户想要阻止某些向 Web 服务发出许多请求的 IP 地址 现在我想知道的是 如果我用动态 IP 地址阻止用户 他不能重置调制解调器并重新开始吗 你是对的 如果IP是动态的 尽管路由器重置可能不会立即改变它
  • sybase @@error 捕获错误的替代方法

    通常我会遇到这样的错误 EXECUTE STATEMENT SELECT ERR CODE ERROR 它处理简单的错误 如下面的查询 ERROR 返回值 insert into tab1 values 1 error attempt to
  • 如何从本地创建全局变量并存储其先前的值?

    在我的 pygame 游戏中 我希望子弹能够检测到它何时位于给定的命中框中 为此 我需要从本地创建一个全局变量 但是 每次出现新对象时 全局变量都会更新为新的碰撞盒 这不允许我跟踪之前的碰撞箱并检测子弹何时位于屏幕上的旧对象内 我该如何防止
  • 无法使用 JPA 获取与数据库的连接 - 缺少 derby 嵌入式驱动程序类

    我正在尝试使用 jpa 创建本地 derby 数据库 作为 JPA 实现 我使用 openjpa 并作为 sql 实现 derby 这是 persistence xml
  • Ruby 数组上未定义的方法“to_h”

    As per Ruby 数组文档 http ruby doc org core 2 2 0 Array html method i to h 有一个方法to h只要数组的每个元素是另一个包含两个元素的数组 就可以使用它将数组转换为哈希 以下
  • Android ListView,OnListItemClick,查找行id?

    我似乎无法找到如何获取我的 ListView OnListItemClick 以打开不同的活动 我知道我需要为 ListView 获取一些 row id 但我不知道如何做 现在 ListView 中的每一行都打开相同的活动 抱歉我的英语不好
  • JavaScript 的 for...in 循环如何处理多维数组?

    我在玩了一下 JavaScript 发现 至少对我来说 在通过 for in 循环处理多维数组时有奇怪的行为 所以我有这段代码
  • 在 C++ 中创建可修改的字符串文字

    是否可以在 C 中创建可修改的字符串文字 例如 char foo foo foo char afoo foo 0 afoo 2 g access violation 这会产生访问冲突 因为 foo 是在只读内存中分配的 我相信是 rdata
  • 什么时候应该使用各个线程同步对象?

    在什么情况下应该使用以下每个同步对象 读写锁 信号 Mutex 由于每次调用 post 时 wait 都会返回一次 因此信号量是一种基本的生产者 消费者模型 除了信号之外最简单的线程间消息形式 使用它们是为了让一个线程可以告诉另一个线程发生
  • 格式字符串参数不足

    我在Python中有这样的代码 def send start self player for p in self players player socket send cmd
  • 类型错误:“未定义”不是函数(评估“sinon.spy()”)

    我正在尝试使用sinon js http sinonjs org 在测试骨干应用程序时 但不幸的是 由于错误 我无法使用间谍方法 TypeError undefined is not a function evaluating sinon
  • 如何将 WPF 用户控件的宽度拉伸到其窗口?

    我有一个带有用户控件的窗口 我想让用户控件宽度等于窗口宽度 怎么做 用户控件是一个水平菜单 包含一个包含三列的网格
  • 系统windows窗体定时器参数

    如何将参数传递给System Windows Forms Timer private System Windows Forms Timer timer timer Interval 1000 timer Tick new EventHand
  • 如何将数据绑定到Spring表单中的列表

    我有一个带有支撑物体的弹簧形式 形式是这样的
  • 什么是 .htaccess 文件?

    我是 Zend 框架的初学者 我想了解更多关于 htaccess 文件及其用途 有人可以帮助我吗 我找到了一个这样的例子 htaccess 文件 AuthName Member s Area Name AuthUserFile path t
  • 转换为具体类并调用 Java 中的方法

    假设我们有一个名为A和一些子类 B C D ETC 大多数子类都有这个方法do 但基类没有 班级AA提供了一个方法叫做getObject 这将创建一个类型的对象B or C or D等 但将对象作为类型返回A 如何将返回的对象转换为具体类型