Java - getMethod null检查

时间:2017-01-08 06:19:43

标签: java

我有一个类,如下所示,在设置数据之前,我需要检查getValue()是否存在且值是否为空。

public class Money {
{
    private String value;
    private String currency;

    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public String getCurrency() {
        return currency;

    public void setCurrency(String currency) {
        this.currency = currency;
   }
}

//JSON is like this
  "money": {
    "currency": "USD",
    "value": ""
}

我想检查这个getValue()是否存在,如obj.getMoney().getValue() != null,  然后我需要检查它的值是否为空... obj.getMoney().getValue().equals("")但它在此条件obj.getMoney().getValue() != null上失败为null。

5 个答案:

答案 0 :(得分:0)

如果以下检查失败

if (obj.getMoney().getValue() != null) { ... }

然后它暗示货币对象本身是null。在这种情况下,您可以稍微修改if条件以检查此内容:

if (obj.getMoney() != null && obj.getMoney().getValue() != null) { ... }

答案 1 :(得分:0)

obj.getMoney()。getValue()将为您提供空指针异常。您应该在使用之前检查null对象。在它之后。示例代码:

下面的代码看起来很大,但它实际上是可读的,它将由编译器进行优化。

if(obj != null){
    Money money = obj.getMoney();
    if(money != null) {
        String value = money.getValue();
        //Add you logic here...
    }
}

答案 2 :(得分:0)

我认为你得到零点异常。您正面临此异常,因为obj.getMoney()已为空。由于您正在尝试获取null对象的值,因此您将获得此异常。正确的代码将是

if ((obj.getMoney() != null) && (obj.getMoney().getValue().trim().length() > 0)) { 
    // Execute your code here
}

答案 3 :(得分:0)

你说首先需要检查value是否为空,然后检查值是否为空,

您可以执行以下操作

if (obj.getMoney() != null && obj.getMoney().getValue() != null && !obj.getMoney().getValue().isEmpty()) {
      // rest of the code here
}

答案 4 :(得分:0)

实例化你的obj时,给出一个新的。验证的形式是正确的,问题出在未初始化的obj中。 (我相信)