【发布时间】:2023-04-06 08:58:01
【问题描述】:
我正在尝试编写 java 8 方式:
public static void main (String[] args) throws java.lang.Exception
{
int arr [] = {3,4,5,6,7};
Arrays.asList(arr)
.stream()
.filter(i -> i % 2)
.sorted()
.map(j -> j+ 1)
.forEach(System.out::println);
}
filter 应该几乎丢弃奇数,但我收到以下错误。
Main.java:16: error: bad operand types for binary operator '%'
.filter(i -> i % 2)
^
first type: int[]
second type: int
Main.java:18: error: bad operand types for binary operator '+'
.map(j -> j+ 1)
^
first type: int[]
second type: int
有人能解释一下这个错误的原因吗?
【问题讨论】:
-
你不需要类似
i -> i % 2 == 0的东西吗? -
i % 2不计算为布尔值,您想要i % 2 == 0还是i % 2 == 1?