从类

时间:2016-05-31 23:14:20

标签: java android json

嗨,经过无数个小时,我弄清楚我的问题是什么,但仍无法找到答案。

@Override
    public void onStampResult(StampResult result) {
    }

onStampResult返回带有以下参数的Class StampResult:

public class StampResult implements Serializable {
  public SnowShoeError error;
  public SnowShoeStamp stamp;
  public boolean secure;
  public String receipt;
  public Date created;
}

SnowShoeStamp Class是:

public class SnowShoeStamp implements Serializable {
  public String serial;
}

SnowShoeError类是:

public class SnowShoeError implements Serializable {
  public int code;
  public String message;
}

在onStampResult中,我可以根据result的输出写下逻辑。 成功'stamp'被初始化,'error'不存在。

出现错误时,stamp不存在且error已初始化。

result以下列方式从JSON解析为Class:

try {
     stampResult = gson.fromJson(result, StampResult.class);
      } catch (JsonSyntaxException jsonException) {
        stampResult = new StampResult();
        stampResult.error = new SnowShoeError();
        stampResult.error.message = result;
        }
    mOnStampListener.onStampResult(stampResult);
    mStampBeingChecked = false;
 }

如何在不获取NullPointerExeption的情况下测试errorstamp是否存在?

1 个答案:

答案 0 :(得分:1)

除非我误解了你的问题,否则你只需要检查是否为空。

为了处理不同的情况,您可以执行以下操作:

@Override
public void onStampResult(StampResult result) {
    if (result.error == null){
        SnowShoeStamp stamp = result.stamp;
        // Process stamp
    } else {
        SnowShoeError error = stampResult.error;
        // Process error
    }
}