Line 1 actually achieves to show the dangers of mixing generic types with non-generic types. As you yourself have shown that you could add a
String, Object and so on to a Vector which is actually supposed to refer to a Vector of type Integers only.
This is the price that sun engineers thought of paying in order to introduce generic types in
java and not breaking the old non-generic type code which would be interacting with the new generic type code.
Hence, when mixing non-generic with generic code it's the sole responsibility of the developer to avoid any runtime gotchas.
Hope it makes sense.