给定一个带有签名的方法:
private String[] emitRecord(SomeType someType {...}
我想将 theRecordAsStream
定义为字符串数组流。
String[] someRecord = emitRecord(someType);
Stream<String[]> theRecordAsStream = Stream.of(someRecord);
并将其添加到现有的字符串数组流中。
return Stream.concat(theRecordAsStream, eventsStream);
不幸的是,这是不可能的,因为 Stream.of(someRecord)
返回一个 Stream,然后在 concat 上触发以下错误。
Error:(118, 65) java: incompatible types: inference variable R has incompatible bounds
equality constraints: java.lang.String[]
lower bounds: T,java.lang.String[],java.lang.String,T
处理这个问题的正确方法是什么?
最佳答案
你明确告诉 Stream.of(T t)
你想要一个 Stream<String[]>
,即你告诉它 T
是 String[]
:
Stream<String[]> theRecordAsStream = Stream.<String[]>of(someRecord);
这样一来,编译器就不会将其误解为对 Stream.of(T... values)
的调用, 与 T
作为String
,这就是您目前正在经历的。
关于java - 如何通过将单个数组与流连接来实例化字符串数组流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984904/