Java 8可选orElse orElseThrow不一致

时间:2016-08-01 11:53:48

标签: java java-8 optional

如果a为Optional [123]且b为Optional [empty]。

$scope.number = parseInt('24');
$scope.getNumber = function(num) {
    return new Array(num);   
}

为什么要抛出?

2 个答案:

答案 0 :(得分:5)

因为首先评估参数。这与Optional ......无关。

答案 1 :(得分:5)

orElse()是一个方法,在执行该方法之前,会对其参数进行求值。在这种情况下,参数(b.orElseThrow(() -> new UnexpectedInternalException("Error")))的评估会引发异常。