Dưới đây là mô hình tôi thực hiện:Có thể sử dụng trường hợp Gson như một trường tĩnh trong bean mẫu (tái sử dụng) không?
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);
}
}
tôi nghĩ nó vô dụng để tạo ra dụ Gson mới cho mỗi trường hợp LoginSession.
Nhưng điều tôi lo lắng là các vấn đề về an toàn luồng. Khoảng 1000 trường hợp/giây sẽ được tạo.
Bạn có thể sử dụng trường hợp Gson làm trường tĩnh không?
Cảm ơn mọi lời khuyên/chỉnh sửa.
Chúng tôi vừa gặp sự cố do các sự cố đồng thời với GSON. Vì vậy, tôi không nghĩ rằng nó là 100% thread an toàn - ít nhất là không sau đó gọi toJson. – slott
@slott, làm thế nào để các bạn bơi/tái sử dụng các trường hợp Gson? Bạn có khởi tạo mỗi lần bạn cần serialize không? Hoặc sử dụng một hồ bơi threadlocal? –
Chúng tôi sử dụng GSON cùng với Google Volley và khi chúng tôi phân tích cú pháp dữ liệu JSON đồng thời, chúng tôi thấy vấn đề này. Từ những gì tôi có thể thấy điều này có liên quan đến thực tế là chúng tôi xác định một dấu thời gian để phân tích giá trị datetime. – slott