No primary or default constructor found for interface java.util.List"
时间: 2024-06-14 16:03:01 浏览: 357
在Java中,`java.util.List` 是一个接口,用于表示一个动态大小的有序元素集合,支持增删改查等操作。当你尝试创建 `List` 类型的一个实例,但没有找到合适的构造器(即没有默认的无参构造器,也没有任何参数的构造器),并且也没有显式指定任何实现类(如 `ArrayList`、`LinkedList` 等)时,编译器会抛出 "No primary or default constructor found for interface java.util.List" 的错误。
这个错误通常意味着你需要明确地创建一个 `List` 的实现类的实例,或者使用工厂方法来创建,例如:
```java
// 明确指定实现类
List<String> myList = new ArrayList<>();
// 使用工厂方法,如JDK提供的Arrays.asList
List<String> myList = Arrays.asList("a", "b", "c");
```
如果你尝试用 `new List()`,因为 `List` 是一个接口,没有实例化可能的操作,所以会导致这个错误。如果是为了避免硬编码实现,你可以考虑使用泛型和匿名内部类:
```java
List<String> myList = new ArrayList<String>() {
// 实现必要的 List 方法
};
```
相关问题
no primary or default constructor found for interface java.util.list
这个错误消息表示在接口 java.util.list 中找不到默认构造函数或主构造函数。因为接口不能被实例化,所以不能有构造函数。如果你想使用 List 接口,应该使用它的实现类,如 ArrayList 或 LinkedList。
No primary or default constructor found for interface java.util.List
这个错误提示意味着你在使用一个接口类型的 List 时,没有提供一个主构造函数或默认构造函数。这通常是因为你尝试直接实例化一个接口类型的 List,而接口是不能被直接实例化的。你需要使用一个实现了 List 接口的具体类,如 ArrayList 或 LinkedList,并为其提供一个合适的构造函数。例如,你可以这样创建一个 ArrayList 对象:
```
List<String> mylist = new ArrayList<>();
```
这将创建一个 ArrayList<String> 类型的对象,它可以存储字符串类型的元素。
阅读全文