Zum Inhalt springen

XML Serialization ohne default constructor


blubbla

Empfohlene Beiträge

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 von blubbla
Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...