相关疑难解决方法(0)

如何从数组创建流?

目前,每当我需要从数组创建流时,我都会这样做

String[] array = {"x1", "x2"};
Arrays.asList(array).stream();
Run Code Online (Sandbox Code Playgroud)

是否有一些从数组创建流的直接方法?

java arrays java-8 java-stream

127
推荐指数
3
解决办法
6万
查看次数

以功能方式处理异常的更好方法

在Java 8中使用FP习惯用法时,异常(尤其是已检查的异常)会严重中断程序逻辑的流程.以下是一个任意示例:

String s1 = "oeu", s2 = "2";
Stream.of(s1, s2).forEach(s -> 
    System.out.println(Optional.of(s).map(Integer::parseInt).get()));
Run Code Online (Sandbox Code Playgroud)

当不可解析的字符串出现异常时,上面的代码会中断.但是说我只想用默认值替换它,就像我可以用Optional:

Stream.of(s1, s2).forEach(s -> 
   System.out.println(Optional.of(s)
                              .map(Integer::parseInt)
                              .orElse(-1)));
Run Code Online (Sandbox Code Playgroud)

当然,这仍然失败因为Optional只处理nulls.我想要的东西如下:

Stream.of(s1, s2).forEach(s ->
    System.out.println(
        Exceptional.of(s)
                   .map(Integer::parseInt)
                   .handle(NumberFormatException.class, swallow())
                   .orElse(-1)));
Run Code Online (Sandbox Code Playgroud)

注意:这是一个自我回答的问题.

java java-8 java-stream

58
推荐指数
4
解决办法
9359
查看次数

标签 统计

java ×2

java-8 ×2

java-stream ×2

arrays ×1