我想将所有ISO国家/地区代码(作为Locale.getISOCountries()的输出)作为CountryCode的集合,其编写方式如下:

public class CountryCodes {
  public static final CountryCode GLOBAL = CountryCode.of("GL");

  public static final PCollection<String> ALL =
        OrderedPSet.from(Arrays.asList(Locale.getISOCountries()));
}


这可行,我在ALL中有国家代码列表,但是我希望ALLCountryCode一样是GLOBAL,而不是String。实现这一目标的最佳方法是什么?

最佳答案

尝试

OrderedPSet.from(
  Arrays.asList(Locale.getISOContries())
    .stream()
    .map(CountryCode::of)
    .collect(Collectors.toList())
 )


我没有尝试过代码,但是主要的想法是,应该使用将List转换为Arrays.asList的函数,使使用列表中的每个项目使用mapString构建的CountryCode 。该功能是CountryCode::of

关于java - 如何收集Locale.getISOCountries(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47098984/

10-12 05:50