检查null的值

时间:2016-12-03 12:09:54

标签: java null

我有这个Java代码,我起诉将对象创建为Java List:

ListIssues obj = new ListIssues(
                    get.getId(),
                    get.getUrl().toString(),
                    get.getTitle(),
                    get.getState().name(),
                    get.getBody(),
                    get.getMilestone().toString(),
                    get.getLabels().toArray(),
                    get.getCreatedAt(),
                    get.getClosedAt()
                );

但有时候我有空值。我如何以一种聪明的方式检查价值观?

3 个答案:

答案 0 :(得分:0)

  

但有时候我有空值。我如何检查中的值   一些聪明的方式?

好的做法是,如果缺少任何必填字段,ng build构造函数应抛出ListIssues(而不是在构造函数外明确检查IllegalArgumentExcetion)。

此外,如果有任何可选字段可以设置,那么您可以使用构建器模式,您可以查看here

答案 1 :(得分:0)

这有点困难并且可以根据应用程序变化,你应该有一个验证方法返回一个布尔值,结果是 连贯 验证,我重点是连贯一词,因为像get.getLabels().toArray()这样的一些元素会更好地验证数组是否为空而不是null ...

无论如何是一个例子:

public static boolean isValid(Iget get){
    boolean ret = true;
    ret &= get.getId() !=null;
    ret &= get.getUrl().toString()!=null;
    ...
    ...
    return ret;
}

答案 2 :(得分:0)

你的问题在某种程度上仍然不清楚,所以我不知道这是否能解决问题,但我想提一下,我通常会写我的构造函数:

public ListIssues(String id, String url, String title, String state,
        Body body, String milestone, String[] labels, Instant createdAt,
        Instant closedAt) {
    super();
    this.id = Objects.requireNonNull(id);
    this.url = Objects.requireNonNull(url);
    this.title = Objects.requireNonNull(title);
    this.state = Objects.requireNonNull(state);
    this.body = Objects.requireNonNull(body);
    this.milestone = Objects.requireNonNull(milestone);
    this.labels = Objects.requireNonNull(labels);
    this.createdAt = Objects.requireNonNull(createdAt);
    this.closedAt = Objects.requireNonNull(closedAt);
}
如果参数为null,

requireNonNull()将抛出NullPointerException。如果允许一个参数为null,则只需忽略该调用。