só pode instanciar a classe interna não estática usando o construtor padrão, sem argumento

Eu escrevi uma nova interface. Ao depurar a interface local com a ferramenta POSTMAN, a interface relatou um erro:

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])

A razão é que os parâmetros de entrada definidos por você são mais complicados, então o método da classe interna é usado para receber

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  方法......
		//.......

A essência do problema é: a classe interna não estática não pode ser instanciada

Você precisa fazer duas coisas:
1. Adicionar estático antes da
classe interna 2. Adicionar o construtor padrão à classe interna

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 方法
		//....

Acho que você gosta

Origin blog.csdn.net/wujian_csdn_csdn/article/details/106690192
Recomendado
Clasificación