我正在尝试如下代码
$ cd /myTestingProject/node_modules/appium-xcuitest-driver/WebDriverAgent
$ ./Scripts/bootstrap.sh
但这给了我错误
|错误:二进制运算符'%'的错误操作数类型|第一 类型:int [] |第二种类型:int | int oddInAll = Arrays.stream(mat).filter(i-> i%2!= 0).findFirst()。getAsInt(); |
^ --- ^|错误:找不到符号|符号:方法getAsInt()|
int oddInAll = Arrays.stream(mat).filter(i-> i%2!= 0).findFirst()。getAsInt(); |
^ ------------------------------------------------- ------------ ^
这次我想念什么?
答案 0 :(得分:10)
好吧,Arrays.Stream
会导致您的i
属于int[]
类型,无法在filter
中使用。
我建议也使用我之前为该操作共享的类似示例。
int oddOrMin = Stream.of(arr) // Stream<int[]> and not integers
.flatMapToInt(Arrays::stream) // IntStream
.filter(i -> i % 2 != 0)
.findFirst() // OptionalInt
.orElse(Integer.MIN_VALUE); //default to some value
在上述解决方案中,对一维和二维数组进行迭代的语法仍然相同。
一维数组的解决方案that I'd shared使用了Stream.of(T t)
,其中 T是int[]
,如输入中所提供。另一方面,为二维数组建议的解决方案利用Stream.of(T... values)
,其中int[][]
再次被认为是int[]...
,因此 T的求值为{{1 }} 最终创建一个int[]
。
答案 1 :(得分:6)
改为使用flatMapToInt:
void <OnEthRawPacket>( long channel, long dir, long packetLength );
long EthReceiveRawPacket( long flags, byte srcMacAddress[6], byte dstMacAddress[6], long ethernetType, char *callback );