java.lang.IllegalStateException: No primary or single public constructor found for interface java.util.List - and no default constructor found either
时间: 2023-10-25 10:17:54 浏览: 70
这个错误通常是因为你的代码中使用了一个接口类型的变量,而没有提供一个具体的实现类来初始化该变量。
比如说,你这样声明一个 List 变量:
```
List<String> list;
```
但是没有对其进行初始化或赋值,那么当你在代码中使用 list 变量时,就会出现上述的错误。
为了解决这个问题,你需要使用一个具体的 List 实现类来初始化该变量,比如说 ArrayList:
```
List<String> list = new ArrayList<>();
```
或者在声明变量时就进行初始化:
```
List<String> list = Arrays.asList("a", "b", "c");
```
这样就能够避免上述错误的发生了。
相关问题
java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List
这个错误通常是因为Spring无法找到适当的构造函数来实例化接口java.util.List。这可能是因为你的类中没有定义任何构造函数,或者定义了多个构造函数,但没有一个被标记为主要构造函数。要解决这个问题,你可以尝试以下几个步骤:
1.确保你的类中有一个构造函数,并且它被标记为主要构造函数。你可以使用注释@Primary或@Qualifier来标记主要构造函数。
2.如果你的类中有多个构造函数,请确保它们都被正确注释,并且Spring可以正确地识别它们。
3.如果你的类实现了一个接口,确保该接口有一个默认的构造函数。
4.如果你的类继承自一个抽象类,确保该抽象类有一个默认的构造函数。
下面是一个示例代码,它演示了如何在Spring Boot中使用List:
```java
@RestController
public class MyController {
private List<String> myList;
public MyController(List<String> myList) {
this.myList = myList;
}
@GetMapping("/list")
public List<String> getList() {
return myList;
}
}
```
"java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List"
这个错误是Java中的一个异常,表示在创建接口java.util.List的实例时找不到主要或唯一的构造函数。接口是一种抽象的数据类型,它不能直接实例化,因为它没有具体的实现。因此,当我们尝试创建一个接口的实例时,就会出现这个异常。
接口通常用于定义一组方法的规范,而具体的实现则由实现该接口的类提供。因此,我们不能直接创建接口的实例,而是需要使用实现了该接口的类来创建对象。
如果你想使用List接口的实例,你可以选择使用ArrayList、LinkedList等具体的实现类来创建对象。例如:
List<String> list = new ArrayList<>();
这样就可以创建一个ArrayList的实例,并将其赋值给List接的引用变量list。