Ik was op zoek naar een stuk code in de Java API waarmee je makkelijk universeel properties van een bean kunt zetten, met name wanneer je je values als string hebt.
Het geheel zou ongeveer zo moeten werken:
Waarbij de set functie dan ongeveer de volgende signature heeft:
Hierbij wordt propertyName dan automatische omgezet in getPropertyName voor de method name, en wordt value geparsed naar het juiste type wat bij de setter hoort. Dergelijke code is eigenlijk enorm common. Elke situatie waarmee je met een XML file beans configed maakt zou zoiets gebruiken, alsmede EL implementaties en Java EE containers voor de <jsp:setProperty> tag.
Tot mijn verbazing blijkt dergelijke functionaliteit echter gewoon niet in de standaard Java library te zitten. Er is wel een java.bean package, maar de classes daarin zijn gewoon te wazig voor woorden. PropertyEditor lijkt het bijvoorbeeld te kunnen doen, maar is doorspekt van enorm vreemde methods (isPaintable in een non specific GUI package???
), en kan het dus gewoon niet.
Ik vraag me dus af wie deze functionaliteit nog meer mist in Java, en wie ook vind dat de java.beans package gewoon enorm vaag & onduidelijk opgezet is.
Het geheel zou ongeveer zo moeten werken:
Java:
1
| BeanSetter.set( myBean, "property", value ); |
Waarbij de set functie dan ongeveer de volgende signature heeft:
Java:
1
| public boolean set (Object bean, String propertyName, String value ); |
Hierbij wordt propertyName dan automatische omgezet in getPropertyName voor de method name, en wordt value geparsed naar het juiste type wat bij de setter hoort. Dergelijke code is eigenlijk enorm common. Elke situatie waarmee je met een XML file beans configed maakt zou zoiets gebruiken, alsmede EL implementaties en Java EE containers voor de <jsp:setProperty> tag.
Tot mijn verbazing blijkt dergelijke functionaliteit echter gewoon niet in de standaard Java library te zitten. Er is wel een java.bean package, maar de classes daarin zijn gewoon te wazig voor woorden. PropertyEditor lijkt het bijvoorbeeld te kunnen doen, maar is doorspekt van enorm vreemde methods (isPaintable in een non specific GUI package???
Ik vraag me dus af wie deze functionaliteit nog meer mist in Java, en wie ook vind dat de java.beans package gewoon enorm vaag & onduidelijk opgezet is.
[ Voor 4% gewijzigd door Verwijderd op 21-12-2005 21:53 ]