打印java中protobuf消息列表的字段

sf6xfgos  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(149)

我有一条protobuf消息foo,其中包含一些字段,包括id字段uint32。

message foo {
uint32 foo_id = 1;
bool committed = 2;
...
}

在我的主类和主函数中,我有一个foos列表:List<foo> foos。我想打印所有foos的foo_id。我知道有直接的循环选项,如下所示,但我想知道是否有任何干净的lambda方法来做这件事。
我试过了

String s = "The list of ids are: "
for(i = 0; i < foos.size(); i++) {
   s = s + Integer.toString(foos.get(i).getFooId());
}
System.out.println(s);

但我期待更好更干净的方式。

ffscu2ro

ffscu2ro1#

如果你想使用lambda(或者像python那样),你必须知道stream() apis(可能还有google的guava lib)。

// guava 
import com.google.common.base.Joiner;

System.out.println(Joiner.on(",").join(
    foos.stream().map(foo::getFooId).map(String::valueOf).iterator()
));

相关问题