铸造Java:使用try-catch块函数包装代码?
我有几个将对象强制转换为显式类型的函数
问题是,创建此对象时,类型可能与我要强制转换的类型不匹配。沿着这条路线的某个地方发生了一些转换。但是,代码可能永远不会达到这些转换。事实并非如此
因此,当代码到达将进行铸造的点时,我所需要做的就是将零件放入try-catch块中。事实上,我甚至不需要以任何特殊的方式处理异常
但是我有很多这样的功能。我想知道是否有某种方法可以用try-catch块包装代码行,而不必实际写出try-catch块。如果我可以调用某个函数,那么它将自动执行
try
{
// cast something
}
catch( ClassCastException e )
{
}
相反,我想调用一个方法,将try-catch块放在// cast something
周围。有没有办法做这样的事
注意:当我发现ClassCastException时,我什么也不做。如果我不能正确地强制转换对象,这是可以的,但是我需要捕获异常,这样代码执行就不会跳转到其他地方
# 1 楼答案
尝试创建一个通用方法来为您执行此
casting
# 2 楼答案
据我所知,没有什么可以做到这一点(除了@trandry_Wombat所说的),但如果我站在你的立场上,我会编写一个简单的代码生成器,使用一些模板引擎(如Freemarker或更高级的工具(如Antlr)来处理这些重复/样板案例。每一页都有关于这个地方的教程
# 3 楼答案
您可以编写这样的方法来执行强制转换,同时忽略任何
ClassCastException
您可以这样使用它:
但您也可以改进代码以避免异常:
# 4 楼答案
不太可能,因为这没有任何意义。如果捕获异常时无需执行任何操作,则根本不调用该操作,然后删除所有代码。如果操作成功与否无关紧要,那么首先不要调用它
更严重的是,是严重的-您可以不捕获异常并让调用方处理它