Problème dans le polymorphisme
Bonjour, j'ai une classe abstraite définit en gros de la facon suivante:
Code:
1 2 3 4 5
|
public abstract class LuceneIndexer {
// [...]
protected abstract Vector<RessourceProperty> getRessourceProperties(Object ressource);
} |
Dans une classe qui hérite de LuceneIndexer j'essai de mettre:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public class LuceneRSSIndexer extends LuceneIndexer {
// [...]
protected Vector<RessourceProperty> getRessourceProperties(RSSEntry entry) {
Vector<RessourceProperty> v = new Vector<RessourceProperty>();
v.add( new RessourceProperty("title", e.getTitle(), Field.Store.YES, Field.Index.TOKENIZED));
v.add( new RessourceProperty("description",e.getDescription(), Field.Store.YES, Field.Index.TOKENIZED));
}
return v;
}
} |
Et RSSEntry est une classe qui extends Object.
Cependant Eclipse me balance une erreur
The type LuceneRSSIndexer must implement the inherited abstract method LuceneIndexer.getRessourceProperties(Object)
Pourtant RSSEntry "is a" Object donc ca serait sencé fonctionner non ?
En ce moment je suis obligé de mettre Object entry comme paramètre au lieu de RSSEntry entry et de faire un if (entry instanceof RSSEntry), j'aimerais éviter cela.
Merci!