title: Why doesn't Java allow to define two methods with the same signature except the generic type parameters?
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/1998544/method-has-the-same-erasure-as-another-method-in-type">Method has the same erasure as another method in type</a>  </p>
  </blockquote>
  
  
  
  <p>In one of my classes I wanted to define these two methods:</p>
  
  <pre><code>private void add(List&lt;ChangeSet&gt; changeSetList) {
      for (ChangeSet changeSet : changeSetList) {
          add(changeSet);
      }
  }
  
  private void add(List&lt;Change&gt; changeList) {
      for (Change change : changeList) {
          add(change);
      }
  }
  </code></pre>
  
  <p>Then I get the following error: </p>
  
  <pre><code>Method add(List&lt;Change&gt;) has the same erasure add(List&lt;E&gt;) as another method in type DataRetriever
  </code></pre>
  
  <p>Why isn´t this allowed? What is the problem with method definitions like that? And what should I do to avoid it? I don´t want to rename one of the methods.</p>