Ik heb een vrij onduidelijk probleem met reflectie. Het lijkt alsof een bepaalde invoke domweg genegeerd wordt, hoewel ik blijf hopen dat ik een domme fout maak. Om te beginnen een interface:
Deze interface is een basis interface voor XML tags, de classes die deze interface implementeren maken allemaal gebruik van deze interface (overigens indirect via een DefaultTagHandler class zodat ik niet voor elke tag alle methodes hoef te implementeren)
Verder heb ik een class Tag, in deze class worden alle methodes geinvoked. Een tag instantie is gewoon een wrapper om de te reflecteren klasse heen (met het oog op buffering).
Via een xmlreader roep ik de juiste klasse aan voor het afhandelen van een tag. Nu is het vreemde dat van een bepaalde tag de "endElement" methode niet wordt aangroepen in de gereflecteerde klasse, terwijl in alle overige gereflecteerde classes dat wel het geval is. Er treden geen excepties op in mijn Tag class waar dus het reflecteren plaats vind...
Dus als iemand een idee heeft waar ik waarschijnlijk het probleem moet zoeken, laat het dan gaarne even weten.
Deze interface is een basis interface voor XML tags, de classes die deze interface implementeren maken allemaal gebruik van deze interface (overigens indirect via een DefaultTagHandler class zodat ik niet voor elke tag alle methodes hoef te implementeren)
Java:
1
2
3
4
5
6
7
| public interface TagHandler { public void startElement(String uri, String localName, String qName, Attributes attributes); public void endElement(String uri, String localName, String qName); public void characters( char[] ch, int start, int length); public void init( ResultHandler handler ); } |
Verder heb ik een class Tag, in deze class worden alle methodes geinvoked. Een tag instantie is gewoon een wrapper om de te reflecteren klasse heen (met het oog op buffering).
Via een xmlreader roep ik de juiste klasse aan voor het afhandelen van een tag. Nu is het vreemde dat van een bepaalde tag de "endElement" methode niet wordt aangroepen in de gereflecteerde klasse, terwijl in alle overige gereflecteerde classes dat wel het geval is. Er treden geen excepties op in mijn Tag class waar dus het reflecteren plaats vind...
Dus als iemand een idee heeft waar ik waarschijnlijk het probleem moet zoeken, laat het dan gaarne even weten.