将对象数组映射到Int数组

cer*_*eps 2 java java-8

我正在尝试将我的Object []数组映射并过滤到int []数组.如果对象是int,则工作得很好,但如果没有,则抛出强制转换异常.我想知道我是否能以某种方式在lambda表达式中附加try/catch?这是我的代码:

b[i] = Arrays.stream(item).mapToInt(e -> (int) e).filter(e -> e % 2 != 0).toArray();
Run Code Online (Sandbox Code Playgroud)

或更好的方法是尝试/捕获整块?

Eug*_*ene 5

Wy不过滤整数对象?

.filter(i -> i instanceof Integer).mapToInt(e -> (int) e)
Run Code Online (Sandbox Code Playgroud)

  • 或者,不使用`lambda`:`.filter(Integer.class :: isInstance).mapToInt(Integer.class :: cast)` (4认同)