java 重载 参数子类_java - Java中带有子类参数的函数重载 - 堆栈内存溢出
这个问题已经在这里有了答案:
我有一个扩展了另一个类的类(在这种情况下,这是一个例外):
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语言应该可以完成的工作...
相关文章:

Caused by: java.sql.BatchUpdateException
Caused by: java.sql.BatchUpdateException: Table (%s) has been dropped, altered or renamed.解决方法重启项目转载于:https://www.cnblogs.com/mySummer/p/4723561.html

do{ ...}while(0)应用技巧
辅助定义复杂的宏example: #define A(args) do { a(args); b() } while(0);如果定义#define A(args) a(args);b();if(i > 0) A(i) if(i > 0 )do { a(2);b();} while(0) 或者while(1)a(args);b(); 这不是我们想要的,因为第二个b();不会被执行。代替g…

Idea--使用Idea调试设置
参考 https://blog.csdn.net/yyjava/article/details/81453748 关闭一些Idea默认设置,否则懵逼到爆炸.. 1.关闭集合类视图 2.关闭watch视窗默认调用toString(真的很懵逼!!) 转载于:https://www.cnblogs.com/microcat/p…

基于i2c子系统的驱动分析
https://blog.csdn.net/qq_28992301/article/details/52467766

creo JAVA_Creo 4.0二次开发工具框架搭建
一、新建MFC DLL工程二、配置项目属性附加依赖项中输入:netapi32.lib;psapi.lib;mpr.lib;wsock32.lib;protk_dll_NU.lib;protk_dllmd_NU.lib;protkmd_NU.lib;protoolkit_NU.lib;pt_asynchronous.lib;ptasyncmd.lib;ucore.lib;udata.lib;尝试编译工程,如果…

html5 FileReader初识
使用html5的FileReader可以实现多媒体文件的预览功能,代码如下: <html> <head> <script type"text/javascript"> var fileReader new FileReader(); fileReader.onload function(event) {document.getElementById(image).…

puppet aix之自动化用户管理
一、 用户组的管理 (一) Puppet组管理特性 1. manages_aix_lam用来管理AIX的LAM(Loadable Authentication Module)系统。 2. manages_members对于目录服务是组属性成员,而不是用户。 3. system_groups用来允许你创建比较小GID的系统组,一般小…

C# 文件操作
C# 文件操作文件操作: 检查 创建 读取 写入 修改 删除目录操作: 检查 创建 读取 写入 修改 删除文件操作 若要执行此操作...请参阅本主题中的示例...创建文本文件向文件写入文本写入文本文件向文件写入文本读取文本文件从文件读取文本向文件中追加文本File.AppendText FileInfo…
一种内存池管理技术
本文介绍一种内存池管理技术。 在m公司工作了4年多,一直负责内存池模块问题的处理,比如内存越界,data abort 系统异常的处理,本文加以总结,以便后续参考。 读本文之前,先有个约定,本文中提到的p…

企业支付宝账号开发接口实现
转载自:http://my.oschina.net/xshuai/blog/313809 关于即时到账的开发。审核通过。简单测试如下。 希望看的可以收藏或者赞一下哦。 1:拥有自己的支付宝企业账号。去产品商店选择适合自己的方案。并签约合同。 2:选择合适的商家收款产品并去签约。填写相应的信息 3…
Fastadmin管理Mysql_FastAdmin-CMS模版制作(6)-正式部署
一、工具信息介绍(1)服务器系统:CentOS7.2 64位系统;(2)服务器面板:宝塔,官网地址:https://www.bt.cn/;(3)PHP7.2;(4)mysql5.6;(5)Nginx;二、运行环境安装(1)进入宝塔官网…

使用微软提供的Office Online实现Office文档的在线查看,编辑等功能
使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档http://view.officeapps.live.com/op/view.aspx?src要查看的文档地址在线编辑需要登录live.com并从onedrive中打开或新建文档也可以来自在线模板(下面的Excel来自Excel Online模板,编辑…

HDU(1847)Good Luck in CET-4 Everybody!
利用PN分析求解此题。递推下去会发现3和3的倍数都是P点。 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <set> using namespace std; int main() {int n;while(~scanf("%d",&n)){i…
uboot引导kernel - 1 - Flash的分区
uboot启动Linux内核过程分为4大步骤: 问题1:Flash的分区相关问题 在 上述步骤1/2/4 中都提到了从启动介质(iNand/SD)中读取uboot/kernel到SRAM/DDR中,那么具体从启动介质的什么位置分别读取呢? 上述步骤1中,iROM的…

fedora mysql默认密码忘记_Linux fedora 24 忘记密码图形化界面修改root密码的方法
方法及其简单,只需要两步即可:1、第一步:打开终端,输入sudo su命令。–此处的密码为普通用户的密码,也就是开机时输入的密码。2、第二步:直接sudo passwd root就重置了roor密码了。此时输入新的密码即可&am…

Java Web项目结构
Java Web项目结构(一般) 1、Java src 2、JRE System Library 3、Java EE 6 Libraries 4、Web App Libraries 5、WebRoot 版权声明:本文博客原创文章,博客,未经同意,不得转载。转载于:https://www.cnblogs.c…

WTForms 小计1 forms
2019独角兽企业重金招聘Python工程师标准>>> 定义 from wtforms import Form, StringField, validators class MyForm(Form):first_name StringField(uFirst Name, validators[validators.input_required()])last_name StringField(uLast Name, validators[vali…

day32-1 事件Event
事件Event-线程 每一个线程都是独立运行且状态不可预测。你把一个任务丢到子线程中,这个任务将异步执行,如何获取到这个任务的执行状态?使用threading库中的Event对象。对象包含一个可由线程设置的信号标志,线程直到等到该标志为真…
uboot引导kernel - 2- uboot/kernel需要放在DDR什么位置的问题
uboot启动Linux内核过程分为4大步骤: 问题2: uboot阶段DDR的分区的问题 上述步骤2和步骤4中,有将uboot/kernel拷贝纸DDR的步骤,具体要拷贝到DDR的什么位置呢? 分清楚这两个概念: 链接地址:链接…

java ftp pasv_Ftp主动模式和被动模式以及java连接ftp模式设置
FTP的主动模式与被动模式FTP服务器使用20和21两个网络端口与FTP客户端进行通信。FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据。FTP主动模式:FTP客户端向服务器的FTP控制端口(默认是21)发送连接请求,服务器接受连接&#…
Python2.7 安装numpy报错解决方法
Windows 10下用pip安装numpy包报错: Microsoft Visual C 9.0 is required Unable to find vcvarsall.bat Get it from http://aka.ms/vcpython27 通过报错提示信息,打开http://aka.ms/vcpython27会跳转到Microsoft Visual C Compiler for Python 2.7的下…

异常The Struts dispatcher cannot be found. This is
2019独角兽企业重金招聘Python工程师标准>>> 原因:struts2的过滤器映射路径写错 解决方案:在web.xml中配置struts2的过滤器如下: <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*&…

UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除模拟启库SQL> STARUP;*第 1 行出现错误:ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 2: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF利用系统本身的默认手动管理 MAN…
uboot引导kernel - 3 -uboot给内核传参详解
uboot中执行theKernel函数后,kernel正式启动。如下函数,我们发现有3个参数。 1. 参数 0; 2. 参数machid; 如下code 中获取machid, gd是个全局变量. 2.1 bi_arch_number是board_info中的一个元素,含义是:开发板的机器…

hdu 1166 敌兵布阵(树状数组)
题意:区间和 思路:树状数组 #include<iostream> #include<stdio.h> #include<string.h> using namespace std;int n,c[50005];int lowbit(int i){return i&-i; }void update(int i,int val){//更新函数while(i<n){//注意这个n的…

java jdbc 表存在_使用JDBC查询是否存在某表或视图,按月动态生成表
查询数据库是否有某表的存在,主要用的就是Connection对象对元数据的操作,代码很简单,贴出来大家参考。/*** 查询数据库是否有某表* param cnn* param tableName* return* throws Exception*/SuppressWarnings("unchecked")public b…

linux串口驱动分析
linux串口驱动分析硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作。UART 使用系统时钟能够支持最高 115.2Kbps 的波特…
计算TD-LTE DL 峰值速率的工具和相关参数
前一段时间测试DT 基站,需要配置TDD LTE cell 的UDC、TM模式来验证不同组合下的下行峰值速率,趁此机会我用excel写了一个计算下行峰值速率的工具。工具上传至我的github: https://github.com/greenricky/tdlte_dl_rate 计算峰值速率的常用办法是参考36.2…

java配置中心开源项目_配置中心搭建(spring-cloud-config-server)
1.github创建配置库2.配置服务端①创建项目②导入jarorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testorg.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.cloudspring-cloud-config-…

detection in video and image
video中的detection,背景更加复杂,目标更加不聚焦,同时由于图片分辨率低于图像,因此更加难做。 image中的Detection,背景相对简单些,目标更加聚焦,同时图片分辨率高,因此更加容易些。 转载于:ht…