【问题标题】:Guava Joiner throws NPE on null elementsGuava Joiner 在空元素上抛出 NPE
【发布时间】:2017-04-18 23:38:10
【问题描述】:

这里Joiner的初始化不正确?我有以下课程,当我尝试将示例paths 数组与joiner 结合时,我得到一个NullPointerException

public class CPath {
  private static final Joiner joiner = Joiner.on("/");

  private String[] elements;

  @Override
  public String toString() {
    return joiner.join(elements);
  }
}

// main method
final String[] paths = {"a/b/c", "d", "", null, "e/f/g", "h/i", null, ""};
final CPath c3 = new CPath(paths);
c3.toString(); //<<<< NPE

【问题讨论】:

    标签: java guava


    【解决方案1】:

    您必须使用skipNulls()useForNull(defaultValue),它位于其文档的顶部;

    如果既没有指定 skipNulls() 也没有指定 useForNull(String),如果任何给定元素为 null,则连接方法将抛出 NullPointerException。

    所以你要初始化joinerlike;

    Joiner joiner = Joiner.on("/").skipNulls();
    

    Joiner joiner = Joiner.on("/").useForNull("");
    

    Documentation of Joiner from Guava

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 2018-07-27
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多