gpt4 book ai didi

Java:用 try catch block 函数包装代码?

转载 作者:行者123 更新时间:2023-11-30 03:02:58 25 4
gpt4 key购买 nike

我有几个函数可以将对象转换为显式类型。

问题是,当创建这个对象时,类型可能与我要转换的类型不匹配。在此过程中的某个地方,会发生一些转变。但是,代码可能永远不会实现这些转换。事实上,它不存在并不是问题。

因此,当代码到达将发生转换的位置时,我所需要做的就是将该部分放入 try catch block 中。事实上,我什至不需要以任何特殊方式处理异常。

但是我有很多这样的功能。我想知道是否有某种方法可以用 try catch block 包装代码行,而无需实际写出 try catch block 。如果我可以调用某个函数,那么它将如何自动完成。

try 
{
// cast something
}
catch( ClassCastException e )
{
}

相反,我想调用一个方法,将 try catch block 放在 //cast some 周围。有什么办法可以做到这样的事情吗?

注意:当我捕获 ClassCastException 时,我不执行任何操作。如果我不能正确地转换对象也没关系,但我需要捕获异常,这样代码执行就不会跳转到其他地方。

最佳答案

您可以编写这样的方法来为您进行转换,同时忽略任何 ClassCastException

public static <I, O> O cast(I input, Class<O> outClass) {
try {
return outClass.cast(input);
} catch (ClassCastException e) {
return null;
}
}

你可以像这样使用它:

Number n = new Integer(1);
Integer i = cast(n, Integer.class);

但是您也可以改进代码以避免异常:

public static <I, O> O cast(I input, Class<O> outClass) {
if(outClass.isAssignableFrom(input.getClass())) {
return outClass.cast(input);
} else {
return null;
}
}

关于Java:用 try catch block 函数包装代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com