Java genéricos tipo borrado de parámetros de método

Conseguí este de una charla de rompecabezas de Google I / O dada por Joshua Bloch. Aquí está el código

 public class Glommer<T> {
      String glom(Collection<?> obj){
         String result = "";
         for(Object o : obj){
              result += o;
         }
         return result;
      }

      int glom(List<Integer> ints){
           int result = 0;
           for(int i : ints){
                result += i;
           }
           return result;
       }

      public static void main(String args[]){
           List<String> strings = Arrays.asList("1", "2", "3");
           System.out.println(new Glommer().glom(strings));
      }

Este método principal lanza una excepción porquenew Glommer es un tipo crudo y por lo tanto todos los genéricos enGlommer Se borra, por lo que termina llamando.int glom(List<Integer> ints) más bien queString glom(Collection<?> obj).

Mi pregunta es, incluso si llamoglom() comonew Glommer<Integer>().glom(strings) ¿No debería llamar alint glom(List<Integer> ints) método ya que debido al borrado de tipo, este método es efectivamenteint glom(List ints) ystrings es de tipoList noCollection?

Respuestas a la pregunta(3)

Su respuesta a la pregunta