Szukałem odpowiedzi na to, ale bezskutecznie. Moje pytanie brzmi: dlaczego nie można spuścić z lekami generycznymi. Mam klasy o nazwie Praca i rozszerza klasę o nazwie modeluNie można obniżyć przy użyciu klasy List w Javie
Job extends Model
Teraz mam zbiór zadań z kodem wielokrotnego użytku, który generuje listę modeli
// error: Cannot cast from List<Model> to List<Job>
List<Job> jobs = (List<Job>) jobMapper.fetchAll();
gdzie jobMapper.fetchAll() zwraca Lista, w której każdy model wewnątrz niej jest obiektem Job.
Sądziłem, to będzie działać, bo mogę zrobić:
EditText mUsername = (EditText) findViewById(R.id.editUserName);
który jest prosty rzutowanie w dół.
możliwe duplikat [Jak rzucisz listę obiektów z jednego typu do drugiego w Java?] (Http://stackoverflow.com/questions/933447/how-do-you-cast-a- list-of-objects-from-one-type-to-another-in-java) – artbristol
Zadanie jest podklasą modelu, zadanie [] jest podklasą modelu [], ale lista nie jest podklasą listy . –
StarPinkER
@JermaineXu: "podtyp" jest bardziej poprawny niż "podklasa" tutaj. Ponieważ 'List' nie jest tak naprawdę klasą, ale typem. (A ty możesz * twierdzić, że 'Job []' nie jest również klasą). –