Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.