blubbla Geschrieben 20. Oktober 2011 Teilen Geschrieben 20. Oktober 2011 (bearbeitet) Hallo, ich würde gerne eine Art DataTransferObject über XML serialisieren, um es per Webservice zu verschicken. Das Object hat relativ viele Attribute, und es müssen alle Attribute gesetzt sein. Mein Ansatz war nun, alle Attribute mit public final zu deklarieren und dann einen Constructor mit allen benötigten Parametern zu erstellen (wie gesagt, die Attribute des Objekts müssen alle gesetzt sein, damit es Sinn macht). Deshalb soll es auch nicht möglich sien, das Objekt "halbfertig" zu erstellen. Ausserdem ist der Zugriff auf die public final Felder sehr bequem. Mein Problem nun: Ein Objekt muss einen default (public) Konstruktor besitzen, damit es per XML-Annotation serialisiert werden kann. Ich habe nun 2 Möglichkeiten: 1) Ich deklariere alle Attribute als private und baue entsprechen viele getter/setter Methoden - dann mache ich einen leeren default Constructor. Daran gefällt mir nicht, dass es sehr viele getter und setter wären und es nicht sehr schön aussieht bzw. die setter eigentlich auch nich extern benutzt werden sollten 2) Ich erzeuge den default Contructor und setze alle final Attribute auf null. Dann brauche ich keine getter/setter und kann evtl. auch noch einen Fehler melden falls versucht wird, das Objekt ohne Parameter zu instanziieren. Was denkt ihr, macht der 2. Ansatz Sinn (sprich: Ist das guter Stil) oder gibt es auch noch eine ganz andere Lösung? Grüße, blubbla //Edit: Es funktioniet auch, wenn ich im default constructor gleich eine exception auslöse - dann muss ich auch keine final Felder auf null setzen. Ich glaube das wäre schonmal eine gute Lösung Bearbeitet 20. Oktober 2011 von blubbla Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kylt Geschrieben 22. Oktober 2011 Teilen Geschrieben 22. Oktober 2011 Hi, grundsätzlich ist der Ansatz die Attribute im allgemeinen Zugriff zu deklarieren nicht gerade die feinste Art für die OOP in Java - auch wenn es final Attribute sind -. Daher rate ich immer zu gettern und settern. Es ist zwar mehr schreibarbeit , aber es ist sauber und es ist dir auch noch in 1 Jahr verständlich. Benutzt du Java 1.6 Standard Webservices über Jaxb? - Wie wäre es dann die Objekte als required per Annotation zu setzen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.