Error al crear ListaEnlazada de LInkedLists

Little_idiot:

Estoy tratando de crear un LinkedList de LinkedLists en Java.

El siguiente segmento de código está dando un error. Estoy usando java 11 y util.List

Ni idea de por qué estoy recibiendo este error ..

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

Da a los siguientes errores:

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

¿Cómo debería ir en resolver esto?


De acuerdo, por lo que sólo a prueba creé una clase ficticia sólo para crear ListaEnlazada de LinkedLists. Este es el 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<>());    
    }
}

Una vez más, estos errores:

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

Editar: Bueno, está bien funciona cuando se utiliza la importación e importación java.util.List java.util.LinkedList en lugar de import java.util *.

Como se ha señalado en los comentarios es probable que haya algún problema con mi trayectoria de la estructura

Thomas Bitonti:

He probado su ejemplo usando Java7 y el uso de java8, y me da el mismo error que usted está viendo para Java7, pero funciona para mí para java8.

¿Por qué no trabajar para Java7 tendrá que ver con las limitaciones de la inferencia de tipos en esa versión del compilador.

Yo esperaría java11 al trabajo al menos tan bien como java8 (es decir, el código debe compilar utilizando java11). ¿Se puede comprobar la configuración de doble compilador? Puede que esté utilizando un compilador java11, pero puede haber configurado para generar código usando las reglas Java7.

Esta es la versión del código que he probado:

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

Supongo que te gusta

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