java - 是否可以使用 Gson 实例作为模型 bean 中的静态字段(重用)?

标签 java static thread-safety gson

这是我实现的模型:

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);
    }
}

我认为为每个 LoginSession 实例创建新的 Gson 实例是没有用的。

但我担心的是线程安全问题。每秒将创建大约 1000 多个实例。

使用Gson实例作为静态字段可以吗?

感谢您的任何建议/更正。

最佳答案

我觉得还不错。 GSON 实例中没有任何内容使其与 LoginSession 的特定实例相关,因此它应该是静态的。

GSON 实例 should be thread-safe ,并且有一个 bug regarding已修复的内容。

关于java - 是否可以使用 Gson 实例作为模型 bean 中的静态字段(重用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27303275/

相关文章:

java - 在线程之间共享变量时如何避免并发错误?

java - 字符串比较 : individual comparison Vs appended string comparison

java - 更新 Cardview 布局后,Listview Onclick 监听器不工作

java - 使用 Java 和 gradle 的控制台应用程序

windows - 如何在 Perl 中线程安全地设置 STDOUT 编码?

c# - 如何将 AggregateException 展开为单个异常?

java - 如何访问 list< 的实际运行时对象上的方法?扩展基类>?

rust - Rust 的静态变量的作用域是什么?

c - C中多个文件中的静态二维数组

java - 为什么我不能在主类中创建除 main 方法之外的另一个方法?