Java的断言运行安全

我期待这样的事情:Java的断言运行安全

assertSafe(Integer.parseInt(val)) 

这可能吗?

谢谢!

回答:

你想assertSafe捕捉任何异常,并失败,对不对?不幸的是,这对于Java来说是不可能的(至少今天)。一般而言,所有参数在传递给方法之前都必须经过评估。

你可以创建,虽然一个辅助方法:

public static void assertSafeInt(String val) { 

try {

Integer.parseInt(val);

} catch (NumberFormatException e) {

throw new AssertionError(val + " is not an int");

}

}

用法:

assertSafeInt(val); 

不能象一般,你会想我猜?带lambda表达式的Java 8可能会有所帮助,但我不认为语法会像你想的那样干净。

斯卡拉有一种叫做“按名称调用”的东西,它确实将代码块作为函数传递。在Scala中创建assertSafe很容易。

回答:

类型检查,例如,从JSON字符串中提取值时 - 我想知道为什么它不容易获得。

如果您使用扫描仪,它支持hasNextInt(),hasNextDouble()或hasNextNext()=> String。

通常情况下,你知道什么类型的期望,如果你不解析这个,因为你读它。我会避免阅读一个字符串,我想作为int,这是效率低下。 ;)

以上是 Java的断言运行安全 的全部内容, 来源链接: utcz.com/qa/261358.html

回到顶部