KStream 不兼容的类型
KStream incompatible types
我正在尝试使用字符串在编码部分进行一些操作,并提出了以下代码,请帮助解决代码的语法问题。
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> textlines = builder.stream("INTOPIC");
KStream<String, String> mstream = textlines
.foreach(new ForeachAction<String, String>(){
public void apply(String key, String value){
String str=value.replace("[","");
for(int y=0; y<str.length(); y++){
//System.out.print(str.charAt(y));
}
//System.out.print("\n");
}
});
mstream.to("OUTTOPIC");
在第二个 KStream 语句中显示不兼容的类型.....
我希望替换逻辑可以使用,它应该会影响 textlines 变量。
提前致谢。
foreach
的结果是 void
,而不是下一个 KStream
。如果要转换数据,则需要使用 map
代替...
代码看起来如下(特别是如果您还需要更改密钥,如果不需要 - 请参阅下一个变体):
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> textlines = builder.stream("INTOPIC");
KStream<String, String> mstream = textlines
.map((key, value) -> new KeyValue<>(key, value.replace("[",""))));
mstream.to("OUTTOPIC");
或者您可以将第 3-4 行替换为以下内容(这将导致更好的执行):
KStream<String, String> mstream = textlines
.mapValues(value -> value.replace("[",""));
我正在尝试使用字符串在编码部分进行一些操作,并提出了以下代码,请帮助解决代码的语法问题。
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> textlines = builder.stream("INTOPIC");
KStream<String, String> mstream = textlines
.foreach(new ForeachAction<String, String>(){
public void apply(String key, String value){
String str=value.replace("[","");
for(int y=0; y<str.length(); y++){
//System.out.print(str.charAt(y));
}
//System.out.print("\n");
}
});
mstream.to("OUTTOPIC");
在第二个 KStream 语句中显示不兼容的类型..... 我希望替换逻辑可以使用,它应该会影响 textlines 变量。 提前致谢。
foreach
的结果是 void
,而不是下一个 KStream
。如果要转换数据,则需要使用 map
代替...
代码看起来如下(特别是如果您还需要更改密钥,如果不需要 - 请参阅下一个变体):
KStreamBuilder builder = new KStreamBuilder();
KStream<String, String> textlines = builder.stream("INTOPIC");
KStream<String, String> mstream = textlines
.map((key, value) -> new KeyValue<>(key, value.replace("[",""))));
mstream.to("OUTTOPIC");
或者您可以将第 3-4 行替换为以下内容(这将导致更好的执行):
KStream<String, String> mstream = textlines
.mapValues(value -> value.replace("[",""));