2
我有一個簡單Stream
,是爲了在字節工作:公共終端操作不適用於Stream <java.lang.Byte>嗎?
List<Byte> byteList = Arrays.stream(new Byte[]{0x1, 0x2, 0x3, 0x4})
.map(b -> b >> 1)
.collect(Collectors.toList());
的編譯器會發出:
Error: incompatible types: inference variable
T
has incompatible boundsequality constraints:
java.lang.Byte
lower bounds:
java.lang.Integer
,這也不起作用:
Optional<Byte> aByte = Arrays.stream(new Byte[]{0x1, 0x2, 0x3, 0x4})
.map(b -> b >> 1)
.findFirst();
Error: incompatible types:
java.util.Optional<java.lang.Integer>
cannot be converted tojava.util.Optional<java.lang.Byte>
我沒有找到任何文檔說明流不支持Byte
。任何指針?
謝謝。出於某種原因,Intellij IDEA不停地告訴我該映射是從字節到字節的操作... –
而且它是,但是您的實現返回了一個int –
雖然,如果您在這一點上,也可以使用IntStream.of (0x1,0x2,0x3,0x4).mapToObj(b-vt>(byte)(b >> 1))。collect(Collectors.toList());'因爲沒有真正的理由讓'Byte'對象作爲資源… – Holger