Ho ArrayList<Unit> units
. Voglio scrivere una funzione che restituisca tutti gli oggetti della sottoclasse specificata, che viene usata come parametro. Tuttavia non riesco a farlo funzionare. Ecco quello che ho:estraendo tutte le istanze di sottoclasse dall'arrayist
public static ArrayList<? extends Unit> getTheseUnits(Class<? extends Unit> specific_unit) {
ArrayList<specific_unit> res = new ArrayList<>(); //'specific_unit' is in red here. Adding '.class' or '.getClass()' after it does not resolve anything
for (Unit u : units){
if (u instanceof specific_unit){
res.add(u);
}
}
return res;
}
"È rosso qui dentro" si traduce in un errore del compilatore. Forse dovresti davvero imparare alcune nozioni di base di Java prima di provare a lavorare su tale codice. Significato: scopri concetti elementari come errori del compilatore (e come leggerli), prima di passare a un uso sofisticato di tipi generici! Il tuo "rosso qui dentro" si riduce a: non puoi usare un nome di variabile come tipo generico, quindi 'ArrayList' non è una dichiarazione Java corretta. –
GhostCat
@ Jägermeister Capisco che si tratta di un errore del compilatore, tuttavia Eclipse non aiuta molto affermando che 'specifica_unità non può essere risolta' –