Perché non è possibile istanziare i tipi con caratteri jolly in Java

4

Sto cercando di istanziare

LinkedList<?> op = new LinkedList<?>();

Ma ottengo errore

Cannot instantiate the type LinkedList<?>

Perché non è possibile creare un'istanza in Java?

    
posta Suminda Sirinath S. Dharmasena 06.04.2013 - 13:35
fonte

1 risposta

6

Se non sai quale tipo di oggetto sarà all'interno dell'elenco, perché stai usando i farmaci generici? <?> significa I don't know ( <? extends Object> ).

È passato molto tempo da quando ho programmato in Java, ma la mia comprensione è che i generici di caratteri jolly sono fatti per abbinare qualcosa, ad es. quando si dichiara un parametro del metodo, è possibile utilizzare un carattere jolly in modo che possano essere passati a generici diversi. Inoltre, una variabile può utilizzare un carattere jolly per accettare tipi generici diversi.

Tuttavia, quando si crea un'istanza, è necessario fornire un tipo specifico. Il carattere jolly non ha alcun senso lì.

Ecco perché

List<?> list = new LinkedList();
List<?> list = new LinkedList<Object>();
List<?> list = new LinkedList<MyObject>();

Sono tutti possibili ma

List<?> list = new LinkedList<?>();

non è.

    
risposta data 06.04.2013 - 13:46
fonte

Leggi altre domande sui tag