Bonjour, j'ai une classe abstraite définit en gros de la facon suivante:
Dans une classe qui hérite de LuceneIndexer j'essai de mettre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public abstract class LuceneIndexer { // [...] protected abstract Vector<RessourceProperty> getRessourceProperties(Object ressource); }
Et RSSEntry est une classe qui extends Object.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
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!
Partager