如何将ArrayList分配给List?

mat*_*ath 1 java openjdk list arraylist

我有以下代码:

import java.util.*;

public class hello {
  public static void main( String[] args ) {
    Collection c = new ArrayList< Integer >();
    List l = new ArrayList< String >();
  }
}
Run Code Online (Sandbox Code Playgroud)

并在"列表l"行中获取错误:

hello.java:6: error: incompatible types
    List l = new ArrayList< String >();
             ^
  required: List
  found:    ArrayList<String>
1 error
Run Code Online (Sandbox Code Playgroud)

我正在使用OpenJDK 1.7:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.12) (7u25-2.3.12-4ubuntu3)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

编辑:当我使用List<String>时:

hello.java:6: error: type List does not take parameters
    List< String > l = new ArrayList< String >();
        ^
1 error
Run Code Online (Sandbox Code Playgroud)

Mar*_*nik 5

我用OpenJDK检查了这一行javac:

List l = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

它完全没有任何投诉.

根据你的第二个错误("不List接受类型参数"),我的猜测是你有一个List在同一个包中定义的类型,它优先于JDK类型,或者你使用的是更多你没有显示的import语句, 如

import java.awt.*;
Run Code Online (Sandbox Code Playgroud)

该包中包含List小部件的位置.