Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte Java Objekte über einen Socket verschicken. Dazu habe ich einen Parser geschrieben der JSON Nachrichten erstellt und auch wieder parst.
Nun möchte ich ein Interface definieren, das es mir erlaubt alle Objekte die dieses Interface implementieren in JSON Objekte umzuwandeln und aus JSON Objekten wieder zu instanziieren.
Java:
public interface JSONMessageInterface<E> {
// Das ist soweit klar
public JSONObject getJSONRepresentation();
// Hier weiß ich nicht weiter
public E getObjectFromJSON(JSONObject object);
}
Ich dachte an ein Interface wie das oben beschriebene. Nun habe ich allerdings das Problem, dass ich jedes mal ein Objekt benötige um ein neues Objekt aus einem JSON zu erzeugen. Die eigentlich logische Lösung wäre eine statische Factory Methode, aber das ist so ja nicht erlaubt.
Gibt es eine Möglichkeit Klassen zu zwingen eine statische Methode zu implementieren? Gibt es eine andere schöne Möglichkeit für Objekte eine JSON Repräsentation sowie deren Konvertierung zu implementieren?
Gson kenne ich, ich hätte nur gerne meine eigene JSON Repräsentation der Objekte. Aber so wie ich mir das im Startpost vorgestellt habe, geht das dann wohl nicht?
spricht was dagegen, das die oberste Superklasse einfach von einer Klasse erbt, welche diese Methoden bereitstellt? Natürlich müssten dann aber alle anderen Klassen die ausserhalb der Hierarchie stehen auch davon erben sofern sie diese Methode besitzen sollen
spricht was dagegen, das die oberste Superklasse einfach von einer Klasse erbt, welche diese Methoden bereitstellt? Natürlich müssten dann aber alle anderen Klassen die ausserhalb der Hierarchie stehen auch davon erben sofern sie diese Methode besitzen sollen
1. Ich will alle Kindklassen dazu zwingen diese Methode zu implementieren. Jede Klasse braucht ihre eigene Implementierung davon.
2. Weil nicht immer alles was in der Klasse ist auch wirklich relevant ist und ich über das Netzwerk wirklich nur das nötige senden möchte um unnötigen traffic zu vermeiden, da die Anwendung auch über das mobile Netz genutzt werden soll.
Ich habe bereits eine Implementierung mit seperaten Parser Klassen die statische Methoden bereitstellen um die Objekte zu parsen. Ich habe nur gemerkt, dass dies relativ fehleranfällig ist, da es passieren kann dass ich an den Klassen Änderungen mache und diese dann vergesse auf die Parser zu übertragen.
2. Weil nicht immer alles was in der Klasse ist auch wirklich relevant ist und ich über das Netzwerk wirklich nur das nötige senden möchte um unnötigen traffic zu vermeiden, da die Anwendung auch über das mobile Netz genutzt werden soll.