这个问题已经在这里有了答案:

我有一个扩展了另一个类的类(在这种情况下,这是一个例外):

public class NewTypeException extends Exception {

private String exceptionField;

public String getExceptionField() {

return exceptionField;

}

public void setExceptionField(String exceptionField) {

this.exceptionField = exceptionField;

}

public NewTypeException(String cause, String reason) {

super(cause);

exceptionField = reason;

}

}

还有另一个类(为方便起见,我们称之为PrintUtil )具有两个具有相似签名的方法,唯一的区别是Exception类型更改为子类:

void doStuff(Exception ex) {

System.out.println(ex.getMessage());

}

void doStuff(NewTypeException ex) {

System.out.println("New Type Exception");

System.out.println(ex.getExceptionField());

System.out.println(ex.getMessage());

}

在我的代码的很多地方,我有一堆

try {

// code

} catch (Exception ex) {

printUtil.doStuff(ex);

}

添加此新的异常类型后,我想让此行根据参数调用最具体的方法。 但是,似乎在我测试此方法时,即使运行时类型适合其他方法(例如NewTypeException),也只会将方法用于Exception 。 除了替换数百个部分之外,是否有其他方法可以做到这一点

try {

// code

} catch (Exception ex) {

printUtil.doStuff(ex);

}

try {

// code

} catch (NewTypeException ex) {

printUtil.doStuff(ex);

} catch (Exception ex) {

printUtil.doStuff(ex);

}

? 这似乎是一种真正基本的OOP语言应该可以完成的工作...

java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出相关推荐

  1. java打印空白页_java - DocPrintJob在随机主机上打印空白页 - 堆栈内存溢出

    我在各种主机和打印机上打印包含某些标签的PDF时遇到问题. 在某些主机上,我的应用程序打印了许多空白页,但在其他主机上,一切正常. 我不知道为什么. 我没有任何空异常或其他东西. 在装有Linux和带 ...

  2. aws java mysql_java - AWS EC2 / MySql - spring boot无法从datasource确定jdbc url - 堆栈内存溢出...

    我有一个简单的Spring Boot应用程序,我试图在基于Amazon AMI的Amazon EC2实例上部署. 它使用MySql数据库(版本8.0.15). 我在AWS上创建了数据库,当我从本地系统 ...

  3. android消息发送字符串,android - 从Android客户端通过HTTP在HL7消息中发送base64字符串时遇到错误 - 堆栈内存溢出...

    我正在android客户端(API 17)中使用HL7消息,并使用Hapi库生成和解析HL7消息.当我传输小的字符串值时,该消息工作正常. 但是我必须通过Http将图像发送到HL7服务器,为此,我正在 ...

  4. java soap附件_java - 附件在SoapUI中工作,但在Java中不能使用SAAJ API吗? - 堆栈内存溢出...

    我能够使用SoapUI附加一个完全相同的SOAP Request的zip文件,但不能使用SAAJ Api的Java. 这是我在SOAPUI和JAVA中使用的SOAP请求: projectName ci ...

  5. java 解析数据包_java - 如何在Java中正确解析TCP数据包? - 堆栈内存溢出

    我目前有一个简单的TCP服务器,该服务器调用一个函数,并在每个新的传入数据包上以字节数组的形式将二进制TCP有效负载传递给它,解析它的正确方法是什么? 我试图通过将其切成不同的字节数组并分别进行处理来 ...

  6. java ftp 关闭连接_java - 使用Java Apache FTPClient进行FTP TLS获取“握手时远程主机关闭连接”[重复] - 堆栈内存溢出...

    我在Windows 10 64x上为FTP TLS(org.apache.commons.net.ftp)运行了一个Java(1.8)程序: FTPSClient ftpClient = new FT ...

  7. java 图片有损压缩_java - 用有损jpeg压缩多页tiff图像 - 堆栈内存溢出

    将图像从16位减少到8位. 假设您有一个byte []变量plane16,在其中您有图像的所有像素. 注意 :我的byte [] plane16从16位图像获取数据,但是byte为8bit = 1by ...

  8. java服务器返回错误码,java - java.io.IOException:服务器返回URL的HTTP响应代码:409 - 堆栈内存溢出...

    我正在使用某些应用程序的API下载文档. 问题是,当我尝试解析inputStream时,它将引发响应代码409异常. 但是最大的问题是它有时会抛出此异常. 此异常的原因是什么? 这是我的代码: URL ...

  9. java结果写入html,java - 将长字符串写入HTML文件,InputStream vs FileWriter vs BufferedReader - 堆栈内存溢出...

    我对执行此操作的最佳方法有些困惑. 我在SO上看到了很多示例,许多答案有不同的解决方案. 因此,我想知道将非常长的字符串写入新的html文件的最有效方法(即,从字符串中生成html文件). 并且真的可 ...

  10. java mapper.readtree_java - 杰克逊的readValue和readTree:何时使用哪个? - 堆栈内存溢出...

    我刚刚开始使用Jackson JSON库. 杰克逊是一个非常强大的库,但它有一个非常广泛的API. 很多事情可以通过多种方式完成. 这使得很难在杰克逊找到自己的方式 - 如何知道什么是正确/最好的做事 ...

最新文章

  1. 熬夜之作:一文带你了解Cat分布式监控
  2. oracle 基础1
  3. 【职场】税前110万
  4. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...
  5. C语言科技感图片,科技感与运动范十足,几何C黑棚图曝出,年轻消费者又多了新选择...
  6. Python识别表格图_使用Python究竟可以做什么?下面是Python的3个主要应用
  7. 如何通过js处理相同时间的信息整合到一起的问题
  8. cetk使用方法--nand flash测试
  9. python把485读回来的转为位_我能用Python读取从计算机上接收到的Modbus RS485数据吗?...
  10. npm 依赖下载报错 Hostname/IP does not match certificate‘s 相关 解决方案
  11. axure键盘弹出_AXURE教程:手机键盘
  12. mysql 删除表的方法_MySQL 删除表的三种方式
  13. 不用 PLC与变频器通信程序 不用 三菱PLC与变频器通讯程序不经过 PLC与变频器通信
  14. 华硕笔记本的 Ubuntu 18.04 安装 nvidia 显卡驱动并支持 HDMI 输出
  15. 【超简单】用python写给女朋友的词云
  16. 社区疫情防控的微信公众号文章排版必备素材集锦
  17. Xbox手柄转子马达的控制运用机制原理
  18. GeneXus学习记录——环境搭建
  19. 十大著名的思想实验(程序员应该会读喜欢这些)
  20. linux是专业的gis系统,首款支持红旗Linux操作系统的GIS基础平台问世

热门文章

  1. There was a problem confirming the ssl certificate ……
  2. 扩展typeof来判断js变量的类型
  3. Blender灯光照明与渲染视频教程 Skillshare – Blender: Product rendering for beginners
  4. 读书:一百个 终身受益的 思维模型(持续更新)
  5. 二分法:查找区间search for a range
  6. [转帖]tar高级教程:增量备份、定时备份、网络备份
  7. 程序员跳槽全攻略——读书笔记
  8. 【原创】ListView快速滚动至新添加一行(自动滚动)
  9. CI流水线配置文件参数详解(一)
  10. OpenCV 【一】—— OpenCV中数组指针、图像分块计算、指针取像素值与MatToEigen方法,内存对齐