Java 创建LinkedList的LinkedList时出错

Java 创建LinkedList的LinkedList时出错,java,collections,Java,Collections,我正在尝试用Java创建LinkedList的LinkedList 以下代码段出现错误。我正在使用Java11和util.List 不知道我为什么会犯这个错误 N = in.read(); List<List<Integer>> L; L = new LinkedList<>(); for( i = 0;i<N;i++) L.add(new LinkedList<>()); N=in.read(); 清单L; L=新链接列表(); 对于(i

我正在尝试用Java创建LinkedList的LinkedList

以下代码段出现错误。我正在使用Java11和util.List

不知道我为什么会犯这个错误

N = in.read();
List<List<Integer>> L;
L = new LinkedList<>();
for( i = 0;i<N;i++) L.add(new LinkedList<>());
N=in.read();
清单L;
L=新链接列表();

对于(i=0;i我已经尝试了您使用java7和java8的示例,它给出了与您在java7中看到的相同的错误,但对我来说适用于java8

为什么它不适用于java7将与该版本编译器中类型推断的限制有关

我希望java11至少能像java8一样工作(也就是说,代码应该使用java11编译)。您能仔细检查一下您的编译器设置吗?您可能正在使用java11编译器,但可能已经将其设置为使用java7规则生成代码

以下是我测试的代码版本:

import java.util.List;
import java.util.LinkedList;

public class TypeTest {
    private static final int STORAGE_SIZE = 10;

    private static final List<List<Integer>> storage = new LinkedList<>();

    static {
        for ( int elementNo = 0; elementNo < STORAGE_SIZE; elementNo++ ) {
            storage.add( new LinkedList<>() );
        }
    }
}
import java.util.List;
导入java.util.LinkedList;
公共类类型测试{
专用静态最终整型存储_SIZE=10;
私有静态最终列表存储=新建LinkedList();
静止的{
对于(int-elementNo=0;elementNo
你有没有给你的一个类命名过
LinkedList
,这对我来说很好用java11显示你的实际导入和运行此操作的类的类型签名。它说
LinkedList
不是泛型是一个很大的警告标志。请尝试导入
java.util.LinkedList
(和
java.util.List
)显式,而不是使用通配符
import
语句。由于
java.util.LinkedList
是一个泛型类,编译器肯定是从某处拾取了一些非泛型类
LinkedList
。您可能有一个(非泛型)类
LinkedList
编译器正在查找的某个位置。它可能只是剩余的
.class
文件。请尝试清除生成工件。
import java.util.*;
class Dummy
{
    public static void main(String[] args) 
    {
        List<List<Integer>> L;
        L = new LinkedList<>();
        for(int i = 0;i<10;i++) L.add(new LinkedList<>());    
    }
}
A.java:7: error: cannot infer type arguments for LinkedList
        L = new LinkedList<>();
                          ^
  reason: cannot use '<>' with non-generic class LinkedList
A.java:8: error: cannot infer type arguments for LinkedList
        for(int i = 0;i<10;i++) L.add(new LinkedList<>());    
                                                    ^
  reason: cannot use '<>' with non-generic class LinkedList

import java.util.List;
import java.util.LinkedList;

public class TypeTest {
    private static final int STORAGE_SIZE = 10;

    private static final List<List<Integer>> storage = new LinkedList<>();

    static {
        for ( int elementNo = 0; elementNo < STORAGE_SIZE; elementNo++ ) {
            storage.add( new LinkedList<>() );
        }
    }
}