Oto model I wdrożone:Czy można używać instancji Gson jako pola statycznego w komponencie bean modelu (ponowne użycie)?
public class LoginSession {
private static final Gson gson = new Gson();
private String id;
private String name;
private long timestamp;
public LoginSession(String id, String name) {
this.id = id;
this.name = name;
this.timestamp = System.currentTimeMillis();
}
public String toJson() {
return gson.toJson(this);
}
public static LoginSession fromJson(String json) {
checkArgument(!isNullOrEmpty(json));
return gson.fromJson(json, LoginSession.class);
}
}
myślałem, że to nie ma sensu, aby utworzyć nową instancję Gson dla każdej instancji LoginSession.
Ale martwię się problemami związanymi z bezpieczeństwem wątków. Zostanie utworzonych około 1000+ wystąpień/sekundę.
Czy można używać instancji Gson jako pola statycznego?
Dzięki za wszelkie porady/korekty.
Po prostu mieliśmy awarię z powodu problemów z współbieżnością z GSON. Więc nie sądzę, że jest w 100% bezpieczny dla wątków - przynajmniej nie dzwonię do Json. – slott
@slott, jak ludzie gromadzą/wykorzystują instancje Gson? Czy tworzysz instancję za każdym razem, gdy potrzebujesz serializacji? Lub użyć puli wątkowej? –
Używamy GSON razem z Google Volley, a kiedy analizujemy dane JSON, widzimy ten problem. Z tego, co widzę, wiąże się to z faktem, że definiujemy znacznik czasu do analizowania wartości datetime. – slott