Object -> Foo is checked by the checkcast instr...
# android
j
Object -> Foo is checked by the checkcast instruction that is emitted. Object -> List<Foo> can check for List, but since generics are erased in the bytecode the generic you specify is unchecked