Domanda
Scrivo:
public interface Map <Key, Value> cells;
Eclipse si lamenta e dice "{previsto".
public interface Map <Key, Value> cells{};
Ho poi scritto quanto sopra in Eclipse e si lamenta "Errore di sintassi sul gettone 'cellule', eliminare questo token".
Cosa diavolo devo fare? Google non è il mio amico qui come non riesco a trovare frammenti di codice per capire la sintassi di questa.
Soluzione
Si sta tentando di dichiarare una variabile membro denominata cells
? Se è così, il modo per farlo è:
public class Foo {
// ...
public Map<Type1, Type2> cells;
// ...
}
Se si sta tentando di dichiarare una variabile all'interno di un metodo, fare questo:
public class Foo {
// ...
public void myMethod() {
// ...
Map<Type1, Type2> cells;
// ...
}
// ...
}
Modifica Sembra che siete confusi da Map <Key, Value>
, quindi cercherò di spiegare
Key
è un segnaposto per il tipo di dati che l'oggetto Map
utilizzerà per il suo insieme di chiavi. Analogamente, Value
è un segnaposto per il tipo di dati che utilizzerà per il suo insieme di valori. Una combinazione valida sarebbe, per esempio, Map <String, Integer>
. Ciò significa che l'oggetto Map
sarà mappare un insieme di oggetti String
ad un insieme di oggetti Integer
.
Altri suggerimenti
Probabilmente significa
public Map<Key, Value> cells;
La parola chiave interface
viene utilizzato per definire un'interfaccia. implements
viene utilizzato quando si dichiara una class
che implementa un interface
.
Che cosa stai cercando di fare? Definire un nuovo tipo o definire un membro di tipo Map?
Se si definisce un membro, non è necessario la parola di interfaccia prima di esso. Hai solo bisogno di interfaccia, se si sta definendo un nuovo tipo.
Si desidera:
public Map<Key,Value> cells;
Per creare una variabile denominate cellule di tipo Map.
public interface Map<Key,Value> cells;
sta dichiarando (erroneamente) un definito dall'utente interfaccia denominata Mappa - probabilmente non è quello che si sta cercando di fare
.