I got this one from a google I/O puzzler talk given by Joshua Bloch. Here\'s the code
public class Glommer {
String glom(Collection>
You can read more about Raw Types to understand it fully
Basically, raw types are for using legacy code, almost anything in a raw class will become raw itself, in this case those 2 methods.
So when it is raw there is a method that gets a List and one for Collection so its called the List one, if its not raw, the methods are not raw also and it will call the Collection one because it has the extra information