新しいインターフェイスを作成しました。POSTMANツールを使用してローカルインターフェイスをデバッグすると、インターフェイスからエラーが報告されました。
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.ncic.eam.component.dto.mobileapproval.other.MobileApprovalDoUpdateParameter$Data` (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.ncic.eam.component.dto.mobileapproval.other.MobileApprovalDoUpdateParameter$Data` (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor\n at [Source: (PushbackInputStream); line: 6, column: 13] (through reference chain: com.ncic.eam.component.dto.mobileapproval.other.MobileApprovalDoUpdateParameter[\"data\"]->java.util.ArrayList[0])
その理由は、自分で定義した入力パラメータがより複雑であるため、内部クラスメソッドを使用して受信するためです。
public class MobileApprovalDoUpdateParameter extends MobileApprovalBaseParameter implements Serializable {
public String id;
public String userCode;
/**
* “EDIT_FORM”审批域内数据,取出不可编辑项,保留修改域结构。
*/
public List<Data> data;
// get set 方法
//....
public class Data {
public String id;
public String label;
public String type;
public List<Item> items;
//set get 方法......
//.......
問題の本質は次のとおりです。内部の非静的クラスをインスタンス化できません
次の2つのことを行う必要があり
ます。1。
内部クラスの前にstaticを追加します。2。内部クラスにデフォルトのコンストラクターを追加します。
public class MobileApprovalDoUpdateParameter extends MobileApprovalBaseParameter implements Serializable {
public String id;
public String userCode;
public List<Data> data;
public MobileApprovalDoUpdateParameter(){
}
// get set 方法
//....
public static class Data {
public String id;
public String label;
public String type;
public List<Item> items;
public Data(){
}
// get set 方法
//....