Erro ao criar LinkedList de Linked

Little_idiot:

Eu estou tentando criar um LinkedList de Linked em Java.

O segmento de código a seguir está dando um erro. Eu estou usando java 11 e util.List

Não faço ideia por que eu estou recebendo este erro ..

N = in.read();
List<List<Integer>> L;
L = new LinkedList<>();
for( i = 0;i<N;i++) L.add(new LinkedList<>());

Ele dá os seguintes erros:

A.java:25: error: cannot infer type arguments for LinkedList
            L = new LinkedList<>();
                              ^
  reason: cannot use '<>' with non-generic class LinkedList
A.java:26: error: cannot infer type arguments for LinkedList
            for( i = 0;i<N;i++) L.add(new LinkedList<>());
                                                    ^
  reason: cannot use '<>' with non-generic class LinkedList

Como devo ir sobre como resolver isso?


Ok, então apenas para testar eu criei uma classe fictício apenas para criar LinkedList de Linked. Aqui está o programa completo:

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<>());    
    }
}

Mais uma vez, estes erros:

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

Edit: Ok, funciona bem quando eu usar a importação java.util.List e importação java.util.LinkedList vez de java.util importação *.

Como apontado nos comentários provavelmente há algum problema com a minha caminho de construção

Thomas Bitonti:

Eu tentei o seu exemplo usando Java7 e usando java8, e isso me dá o mesmo erro que você está vendo para Java7, mas funciona para mim para java8.

Por que ele não funciona para Java7 terá a ver com limitações de inferência de tipos em que versão do compilador.

Eu esperaria java11 ao trabalho pelo menos tão bem como java8 (o que quer dizer, o código deve compilar usando java11). você pode verifique suas configurações do compilador? Você pode estar usando um compilador java11, mas pode ter configurá-lo para gerar o código usando as regras Java7.

Aqui está a versão do código que eu testei:

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<>() );
        }
    }
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=328295&siteId=1
Recomendado
Clasificación