バックグラウンドはフロントエンドに戻ります... 開始フィールドはブロックされています (Java) |
いつものように、フロントエンドの共同デバッグ インターフェイスは、フロントエンドの同僚から、2 つの同一のインターフェイスから返される特定のフィールドが異なるというフィードバックを受け取りました。
实体类 :
public class Test{
private Boolean isEnable;
}
==============================
前端接收到的数据 :
{
"enable":true
}
問題:フロントエンドが受け取ったフィールド名が定義と矛盾しています!!! 非常に奇妙です. コードにエラーがないことを確認した後、<Alibaba 開発マニュアル> の一文が頭に浮かびました。の冒頭で定義されているのは、変数の命名方法です。
[必須] POJO クラスのブール変数に is を追加しないでください。追加すると、フレーム解析の一部でシリアル化エラーが発生します。
反例:これは、基本データ型 Boolean isDeleted; のプロパティとして定義されており、そのメソッドも isDeleted() です。RPC フレームワークが分析を逆にすると、対応するプロパティ名が削除されたと「考えられ」、その結果、プロパティが取得されず、例外がスローされます。
したがって、変数名を標準化することが最善の推奨事項ですが、もちろん、この問題をより便利に解決する方法はいくつかあります。
1. シリアル化アノテーションを追加します。
@JsonProperty(value = “isEnable”)
pirvate Boolean isEnable;
2. エンティティ フィールドに対応する get/set メソッドを変更して開始します。
OVER またね!