Wat. So what we're saying here is when you load it back you actually get a list of String instead
of a list of Bar? But at compile time it essentially appears to be a List of Bar?
For what it's worth, if that's what we're talking about, (a) there is extraneous dynamism (populating
a list from an external entity where the objects have been serialized at runtime is not type-checked
at compile time, because it pretty much has to use reflection unless it uses Java serialization, which
is super-brittle and nasty) and (b) we don't get a runtime error at deserialization time because the
JVM erases types at runtime, so there's no check on the types of objects that go into a collection,
even if their types were specified at compile-time.
Thanks,
Antonio