validateOrThrow实现

时间:2019-06-11 07:01:25

标签: java functional-programming

我想以一种功能性的方式实现这样的目标。有什么帮助吗?

public static Function<String[],Void> validateLength3 = (String[] input) -> {
   if(input.length != 3) 
       throw new Exception("length not equals 3");
}

如果数组length == 3,我希望它不返回任何内容。

Else抛出Exception

2 个答案:

答案 0 :(得分:2)

您的代码有两个问题:

  1. Function的{​​{1}}方法需要返回值。
  2. apply()的{​​{1}}方法无法引发已检查的异常。

您可以使用抛出Function的{​​{1}}:

apply()

答案 1 :(得分:0)

为什么需要单独的函数进行验证。流行的库中有一些帮助程序类,它们已经可以满足您的需求。

即Goo​​gle Guava中的Preconditions

您可以写类似

Preconditions.checkState(input.length == 3, "length not equals 3");