将InternetAddress的集合转换为String的集合

时间:2018-11-29 21:12:02

标签: java collections java-stream

我有一组InternetAddress recipients,它们是我的收件人。我需要将其转换为Set。我用

Set<String> reci = new HashSet<>();
for(InternetAddress recipient : recipients){
    reci.add(recipient.toString());
}

效果很好,是否可以避免使用loop并使用java 8 map和stream做到这一点。我尝试了以下方法,但是没有用。

recipients.stream().map(String::new).collect(Collectors.toSet());

出现错误“无法解析构造函数字符串”。

1 个答案:

答案 0 :(得分:5)

.map(String::new)的意思是element -> new String(element),并且不存在带有InternetAdress的String构造函数

您需要

recipients.stream().map(InternetAddress::toString).collect(Collectors.toSet());