Collection<String>=new ArrayList<>();这样子会什么会报错
时间: 2024-04-15 10:27:16 浏览: 25
在Java中,`ArrayList`是`List`接口的一个实现类,而`Collection`是`List`接口的父接口。因此,你可以将`ArrayList`赋值给`Collection`类型的变量,例如:
```java
Collection<String> collection = new ArrayList<>();
```
这样的赋值是合法的,不会报错。但是,如果你将`ArrayList`赋值给一个泛型声明为`Collection<String>`的变量,会出现编译错误。
```java
Collection<String> collection = new ArrayList<>(); // 正确
Collection<String> collection = new ArrayList<String>(); // 也可以
```
但如果你使用了Diamond Operator (`<>`),在Java 7之前是不允许的,会导致编译错误。要解决这个问题,你可以将代码修改为以下形式:
```java
Collection<String> collection = new ArrayList<String>();
```
或者直接使用Diamond Operator:
```java
Collection<String> collection = new ArrayList<>();
```
总结起来,将 `Collection<String>` 赋值为 `new ArrayList<>()` 是合法的,不会报错。
相关问题
List<String>arrayList = new ArrayList< String>();
List<String>arrayList = new ArrayList< String>();是一个创建ArrayList对象的语句,其中List<String>表示这是一个泛型类型,只能存储字符串类型的数据。ArrayList是List接口的一个实现类,可以用来创建一个可变长度的数组。下面是一个例子:
```java
List<String> arrayList = new ArrayList<String>();
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
System.out.println(arrayList); // 输出:[apple, banana, orange]
```
List<String> scheduleDateUnList = new ArrayList<String>;
这是一个创建了一个空的ArrayList对象,该对象可以存储String类型的元素。在Java中,List是一个接口,ArrayList是List接口的一个实现类。因此,我们可以使用ArrayList来创建一个List对象,如下所示:
```java
List<String> scheduleDateUnList = new ArrayList<String>();
```
这里的`<String>`表示这个List对象只能存储String类型的元素。我们可以使用`add()`方法向这个List对象中添加元素,例如:
```java
scheduleDateUnList.add("2022-01-01");
scheduleDateUnList.add("2022-01-02");
scheduleDateUnList.add("2022-01-03");
```
我们也可以使用`get()`方法获取List对象中的元素,例如:
```java
String firstDate = scheduleDateUnList.get(0);
```
这将返回List对象中的第一个元素,即"2022-01-01"。需要注意的是,List对象中的元素是有序的,因此我们可以使用`get()`方法根据索引获取元素。