为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用instanceof的情况下获取异常是否为instanceof的复杂方法

在不使用instanceof的情况下获取异常是否为instanceof的复杂方法

不负相思意 2023-07-13 14:05:34
我正在编写一个方法,如果异常是 的实例,该方法将返回 true *someClass*。但我无法导入其中一个类,因为它位于另一个模块中。我无法将该模块添加到项目中,所以我想,我无法使用instanceof。我考虑创建一个Mapof Strings- 异常的类名并检查我的异常的类名是否在映射中,但我认为这会相当慢且难看。方法如下:public boolean checkExceptionClass(Throwable cause){ return (cause instanceof firstException         || cause instanceof secondException         || cause instanceof iDontHaveThatClassException // can't do that         || cause instanceof fourthException);}也许我在我眼皮子底下看不到解决这个问题的好办法。非常感谢任何想法和建议。
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以尝试使用 .getClass() 和 getSimpleName(),例如:


Integer integer = Integer.valueOf(1);


if(integer.getClass().getSimpleName().equals("Integer") {

 return true

}

所以基本上你可以使用你无法导入的类的名称,值得一提的是,硬编码不是最佳实践


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信