2017-06-20 2 views
0
@Override 
    public <E extends Enum<E>> E getValue(){ 
     return (E) super.getValue(); 
    } 

Pourquoi cette annulation ne fonctionne-t-elle pas? L'erreur renvoyée par Idea est que les deux méthodes ont le même effacement mais ne se remplacent pas l'une l'autre.Impossible de remplacer la méthode getValue() de Vaadin ComboBox

Edit:

peut pas surcharger une méthode où les types de paramètres formels de chaque surcharge Effacer pour le type Raw Même

Une classe ne peut pas avoir deux méthodes surchargées qui auront la même signature après l'effacement de type . Les surcharges partageraient toutes la même représentation classfile et généreraient une erreur de compilation.

Source: https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#cannotOverload

Répondre

1

Le paramètre de type est en cours d'effacement lors de l'exécution. Donc la signature est identique. Pour plus de détails, consultez one of the other solutions.