実装によると、null ポインタエラーが報告されていることがわかり、位置決め後、リモート
呼び出し後、統合された戻りオブジェクト R にジェネリックスを追加した後、データ値を取得できないことがわかりました。は空です。デバッグで在庫があるかどうかが確認されると
、この vos には値があります。ここで、vos をデータに設定するときに問題があります。setData の後、
R の戻り値には msg と code のみが含まれていることがわかります。データがありません。
ここでは、パブリック モジュール内の R のデータ メソッドを変更し、元のデータ構築パラメーターをコメント アウトして、次のコードを追加する必要があります。
public R setData(Object data) {
put("data",data);
return this;
}
//利用fastjson进行反序列化
public <T> T getData(TypeReference<T> typeReference) {
Object data = get("data"); //默认是map
String jsonString = JSON.toJSONString(data);
T t = JSON.parseObject(jsonString, typeReference);
return t;
}
//利用fastjson进行反序列化
public <T> T getData(String key,TypeReference<T> typeReference) {
Object data = get(key); //默认是map
String jsonString = JSON.toJSONString(data);
T t = JSON.parseObject(jsonString, typeReference);
return t;
}
この方法で R オブジェクトを変換した後、setData メソッドを使用して通常どおり R オブジェクトにパラメーター データを設定できます。
値を取り出す場合は、以下の方法で設定データのデータを取得できます。
R skusHasStock = wareFeignService.getSkusHasStock(skuIdList);
TypeReference<List<SkuHasStockVo>> typeReference = new TypeReference<List<SkuHasStockVo>>() {
};
List<SkuHasStockVo> data = skusHasStock.getData(typeReference);