參考鏈接: Java8中的java.util.StringJoiner
報錯詳情:?
java.lang.NoSuchMethodException: java.util.List.<init>() 以及 No primary or default constructor found for interface java.util.List?
示例:?
/**
* 此接口會產生以上的報錯
*/
@GetMapping("sample")
public void sample(List<Integer> ids){
? ? ...
}
?
報錯提示如下:?
java.lang.NoSuchMethodException: java.util.List.<init>()
? ? at java.lang.Class.getConstructor0(Class.java:3082) ~[na:na]
? ? at java.lang.Class.getDeclaredConstructor(Class.java:2178) ~[na:na]
? ? ...
?
報錯原因: 對象在初始化時沒有找到對應的構造方法,從而導致對象初始化失敗。?
解決方法: 提供相應的構造方法即可,如示例接口,有兩種處理方法。 方法一,參數前加@RequestParam:?
@GetMapping("sample")
public void sample(@RequestParam List<Integer> ids){
? ? ...
}
?
方法二,參數封裝到對象中:?
@GetMapping("sample")
public void sample(Sample sample){
? ? List<Integer> ids = sample.getIds();
? ? ...
}
?
private static class Sample{
? ? private List<Integer> ids;
? ? ...
? ? // getter setter...????
}