Стирание типа дженериков Java параметров метода

Я получил это из разговора головоломки Google I / O, данного Джошуа Блохом. Вот'код

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

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

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

этот основной метод вызывает исключение, потому чтоnew Glommer это необработанный тип и, следовательно, все дженерики вGlommer стирается, так что в конечном итоге звонитint glom(List ints) скорее, чем .String glom(Collection obj)

Мой вопрос, даже если я позвонилglom() какnew Glommer().glom(strings) не должен»это называетсяint glom(List ints) метод, поскольку из-за стирания типа этот метод эффективноint glom(List ints) а такжеstrings имеет типList нет?Collection

Ответы на вопрос(3)

Ваш ответ на вопрос