Ho fatto un sacco di ricerca di ciò che questo errore del compilatore <identifier> expected
significa, e nessuno di loro sembra applicarsi alla mia situazione. Mi dispiace davvero se si tratta di informazioni duplicate o di base, ma non riesco a trovare nulla da nessuna parte.Errore del compilatore Java non ha alcun senso (<identifier> previsto)
Il seguente codice funziona correttamente. Si noti che io sono positivo myObject1
è davvero un HashSet<String>
quindi il cast è ok.
@SuppressWarnings("unchecked")
HashSet<String> s1 = (HashSet<String>) myObject1;
Il seguente codice NON funziona correttamente. Si compilerà, ma con avvertimenti.
@SuppressWarnings("unchecked")
HashSet<String> s1;
s1 = (HashSet<String>) myObject1;
Quindi quindi provo il codice qui sotto.
@SuppressWarnings("unchecked")
HashSet<String> s1;
@SuppressWarnings("unchecked")
s1 = (HashSet<String>) myObject1;
Ora si rifiuta di compilare anche, dandomi l'errore <identifier> expected
che mi sta tanto sconcertante. Il simbolo ^
nella mia riga di comando punta a destra prima dello =
nell'ultima riga. Non sono sicuro di cosa ci si possa aspettare che metta TRA lo s1
e lo =
.
Qualche idea? Grazie!
Poiché il compilatore si aspetta una dichiarazione lì, 's1' viene analizzato come un nome di tipo, quindi naturalmente si aspetta che un'entità di tipo' s1' sia nominata in seguito. –
Al di fuori dell'ambito della domanda, è necessario utilizzare "Imposta" anziché "HashSet ". Anche se conosci la classe di implementazione in fase di sviluppo, dovresti pensare alle interfacce. Cosa succede se qualcuno in seguito decide di spostare il codice in 'TreeSet', il team * deve * cambiare tutti questi file con' HashSet' e spostarlo in 'TreeSet'? –
Grazie Luiggi, so che mi hai appena detto la stessa cosa in una domanda diversa e stavo ancora facendo lo stesso errore qui ... grazie per il promemoria. :-) – The111