Ich verwende Java Callable Future in meinem Code. Unten ist mein Hauptcode, der die Zukunft und die callables verwendet -
Unten ist mein Hauptcode, der die Zukunft und die Callables verwendet -
%Vor% Unten ist meine Klasse Task
, die die Callable-Schnittstelle implementiert, in der ich einen REST-URL-Aufruf an meine Server unter Verwendung von RestTemplate
mache. Und dann gebe ich response
variable an checkString
method weiter, in dem ich den JSON-String deserialisiere und dann überprüfe ich, ob der Schlüssel error
oder warning
enthält und dann basierend darauf ein TestResponse
.
Also meine Frage ist, wie soll ich hier GSON
deklarieren? Sollte es als statische finale globale Variable in meiner Task-Klasse deklariert werden? Bcoz derzeit analysiere ich JSON mit gson und für jeden Anruf mache ich new Gson()
, was teuer wäre oder nicht?
Das Gson
-Objekt kann explizit aus mehreren Threads verwendet werden, da es keinen internen Status behält, also deklariere private static final Gson GSON = new Gson();
oder mach es sogar public
.
Wenn Sie möchten, dass Ihr Client-Code das Rendering mithilfe von GsonBuilder
anpassen kann, sollten Sie ein Objekt Gson
als Parameter akzeptieren.
Die Gson-Bibliothek kann auf Klassenebene definiert und überall verwendet werden, da sie den Zustand zwischen verschiedenen Aufrufen nicht aufrechterhält. Da der Status nicht beibehalten wird, können Sie ihn einmal deklarieren und überall verwenden (eine Zeile weniger Code, wenn Sie ihn erneut verwenden müssen). Multi-Threading hat keinen Einfluss darauf. Wenn man jedoch die Leistungskennzahlen in der offiziellen Dokumentation betrachtet, scheint es kein teurer Anruf zu sein.
Tags und Links java multithreading thread-safety gson