Il y a déjà quelques discussions ici sur stackoverflow sur les génériques Java, mais je suis trop stupide pour résoudre cette question spécifique. J'ai défini une interface dans un projet, et son implémentation dans un autre. Ils sont dans des paquets différents. Au lieu d'implémenter la méthode, le compilateur se plaint dans certains espaces de travail:Eclipse se plaint du conflit de noms si une interface avec une méthode ayant un argument générique est implémentée
Nom clash: La méthode highlight (EnumSet, int, int) de type SuperDuperHighlightable a le même effacement que highlight (EnumSet, int, int) de type IHighlightable mais ne l'outrepasse pas
Le même code ne se plaint pas dans d'autres espaces de travail, et je ne trouve pas les différences pertinentes. Tous les projets et espaces de travail utilisent JRE SE 1.5.
HighlightingStyle.java
package org.my.api;
public enum HighlightingStyle {
NONE, FIELD, SELECTION, TEST
}
IHighlightable.java
package org.my.api;
import java.util.EnumSet;
import javax.swing.text.BadLocationException;
public interface IHighlightable {
void highlight(EnumSet<HighlightingStyle> style, int start, int length)
throws BadLocationException, IllegalArgumentException;
}
Mise en œuvre:
package org.my.impl;
import java.util.EnumSet;
import javax.swing.text.BadLocationException;
import org.my.api.HighlightingStyle;
import org.my.api.IHighlightable;
public class SuperDuperHighlightable implements IHighlightable {
public void highlight(EnumSet<HighlightingStyle> styleSet, int start, int length)
throws BadLocationException, IllegalArgumentException {
for (HighlightingStyle style : styleSet) {
DoSomething(style, start, length);
}
}
private void DoSomething(HighlightingStyle style, int start, int length) {
// TODO Auto-generated method stub
}
}
Avez-vous des idées si cela est un problème de code source, un problème d'espace de travail ou un problème avec Eclipse?
FYI: Si une question a une réponse définie (ce que je suppose que cette question fait), elle ne devrait PAS être un wiki communautaire. –
Merci, je suis un débutant ici, et je ne pouvais pas encore saisir ce forum-wiki-engine. Puis-je révoquer cette option pour le moment? – wigy
Oui, s'il vous plaît changer, car personne ne gagne la réputation de répondre aux questions de la communauté wiki –