Remplacement d'une méthode avec des Paramètres Génériques en Java?

J'ai une Classe abstraite Monitor.java qui est sous-classé par une Classe EmailMonitor.java.

La méthode:

public abstract List<? extends MonitorAccount> performMonitor(List<? extends MonitorAccount> accounts)

est défini dans Monitor.java et doit être remplacée dans les EmailMonitor.java.

J'ai actuellement la méthode substituée dans EmailMonitor.java comme suit:

@Override
public List<EmailAccount> performMonitor(List<EmailAccount> emailAccounts) {
    //...unrelated logic
    return emailAccounts;
}

Cependant, ce qui produit l'erreur de compilation:

Name clash: The method performMonitor(List<EmailAccount>) of type EmailMonitor has the same erasure as performMonitor(Lis<? extends MonitorAccount> emailAccounts) of type Monitor but does not override it

EmailAccount est une sous-classe de MonitorAccount, (dans mon esprit au moins) remplaçant dans cette façon tout à fait logique. Vu que le compilateur n'est pas heureux avec ma logique, Comment dois-je m'y prendre correctement tout en gardant mon moment de la compilation des vérifications pour s'assurer que tous les appels à EmailMonitor.performMonitor() recevoir des Listes de EmailAccount plutôt que d'un autre type de MonitorAccount?