日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 java綜合 正文

SpringMVC傳參報No primary or single unique constructor found for interface java.util.List錯誤

作者:小徐敲java 更新時間: 2024-04-06 java綜合

傳參后端MVC接受類型不可以使用List,要修改為ArrayList

1:這個錯誤通常出現在使用 Jackson 庫反序列化 JSON 對象時。Jackson 庫名為 “jackson-databind”,是一個用于處理 JSON 格式數據的 Java 庫。它可以將 JSON 字符串轉為 Java 對象或者將 Java 對象轉成 JSON 字符串。

在反序列化 JSON 時,Jackson 需要根據默認構造函數來創建對象實例,并使用 setter 方法來設置屬性。但是,由于 List 是一個接口,它沒有默認的無參構造函數,因此就會出現這個錯誤。

解決這個問題的方法有兩種:

創建一個具體的類來實現 List 接口,并提供一個無參構造函數和所有的必須 setter 方法。例如:

public class MyList<T> implements List<T> {
    private List<T> list = new ArrayList<>();
    
    public MyList() {
        // 無參構造函數
    }
    
    // 所有的必須 setter 方法
    @Override
    public int size() {
        return list.size();
    }
    
    // 省略其他方法
}

2:使用 Jackson 提供的注解標記 List 的實現類。例如,在 List 類型的屬性上加上 @JsonDeserialize(using = ArrayListDeserializer.class) 注解:

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.deser.std.ArrayListDeserializer;

public class MyClass {
    @JsonDeserialize(using = ArrayListDeserializer.class)
    private List<Integer> myList;
    
    // 省略其他屬性和方法
}

這樣,Jackson 反序列化時就會使用 ArrayList 類來實現 List 接口,并正常讀取 JSON 數據

原文鏈接:https://blog.csdn.net/qq_19891197/article/details/131293522

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新