java8流将映射输出连接到字符串返回java.util.stream.ReferencePipeline

问题描述 投票:0回答:1

嗨,我想从对象流中提取属性并设置其格式,并将它们连接到新字符串中。

Ex

public class User{
   public User(String name, String lastname){
      this.name = name;
      this.lastname = lastname;
   }
   public String name;
   public String lastname;
}


List<String> memberNames = new ArrayList<>();
memberNames.add(new User("john", "rush");
memberNames.add(new User("peter", "gabriel");

String users = "";

users += memberNames.stream().map(user ->{return String.format("The user name is %s and his lastname is %s\n", user.name, user.lastname) });

但是当我尝试打印用户字符串时

logger.info(users);

我获得

java.util.stream.ReferencePipeline$3@396555a1

而不是

The user name is john and his lastname is rush
The user name is peter and his lastname is gabriel

提前感谢

java dictionary stream
1个回答
0
投票

您可以这样做,

users = memberNames.stream()
            .map(user -> String.format("The user name is %s and his lastname is %s\n", user.name, user.lastname))
            .collect(Collectors.joining());
© www.soinside.com 2019 - 2024. All rights reserved.