Ich verwende die setProperty-Methode von Apache BeanUtils, um Daten aus einer Excel-Datei auf generische Weise zu importieren. Ich gebe dem Parser eine Liste von Paaren "Spaltenname" und "Eigenschaftsname", und dann legt der Parser die Eigenschaften mit setProperty (..., "Eigenschaftsname", ...) für die Excel-Felder fest, die mit "Spaltenname" übereinstimmen ". Es funktioniert gut, aber jetzt habe ich ein Problem, ich habe eine Eigenschaft, die mit einer addXXX() -Methode eingestellt ist, und ich kann diese Klasse nicht ändern. Wie kann ich diese Eigenschaft festlegen, ohne diese Klasse oder den Parser zu ändern? Ist es möglich? Kann ich mit DynaClass, PropertyUtils oder MethodUtils so etwas wie einen Wrapper erstellen, sodass beim Aufrufen dieser Eigenschaft die addXX-Methode aufgerufen wird?BeanUtils mit einer addXX-Methode
Danke!
Ja, warum WrapDynaClass verwenden, wenn ein einfacher Decorator das Problem löst. Vielen Dank! – fmaste
Ich habe den Dozerator erstellt, aber jetzt erhalte ich eine java.lang.InstantiationException, wenn ich die Instanz wie zuvor erstellt habe. Jemand weiß warum? – fmaste
'InstantiationException' wird ausgelöst, wenn die Klasse entweder abstrakt oder eine Schnittstelle ist oder keinen Konstruktor hat, der öffentlich (oder anderweitig für Aufrufer zugänglich) ist. Dein Problem ist höchstwahrscheinlich letzteres. – ChssPly76