Guli Mall パブリック リターン R プラス ジェネリックはデータを取得できません。デシリアライズ後のデータは空です

実装によると、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);

おすすめ

転載: blog.csdn.net/weixin_42260782/article/details/128483301