If you're referring to not having to cast to/from the Object then no. In order to use generics they must have a common type and casting to/from that type is the only thing you can avoid. I.e. You can't do Color c = vector.get(1) with a Vector<Object>. All the compiler knows is that the Vector contains Objects, you have to do the down cast yourself.