java - 如何使用 ThreadLocal.withInitial 初始化 Map 类型的线程本地?

标签 java initialization thread-local

我正在尝试使用“ThreadLocal.withInital”方法初始化 Map 类型的线程本地

我可以继续设置一个新的 ThreadLocal 并添加一个 setter 方法来继续初始化。但我正在尝试找到一种方法是否可以通过初始完成。

private static final ThreadLocal<Map<Date, Boolean>> dateBooleantl = new ThreadLocal<>();

预期输出:

private static final ThreadLocal<Map<Date, Boolean>> dateBooleantl = ThreadLocal.withInitial(<Hash-map that is set with a predefined date and a boolean>)

最佳答案

也许是这样:

private static final ThreadLocal<Map<Date, Boolean>> dateBooleantl = ThreadLocal.withInitial(() -> {
        Map<Date, Boolean> map = new HashMap<>();
        map.put(new Date(), true);
        //do other stuff...
        return map;
    });

关于java - 如何使用 ThreadLocal.withInitial 初始化 Map 类型的线程本地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54042004/

相关文章:

Java根据utf-8编码索引查找字符串的索引

c++ - 静态类变量是否在第一次调用静态成员函数之前初始化?

java - 如何在 web-inf/class 下的类命名空间中创建/写入文件

c++ - thread_local 变量在线程内不一致

java - 实现多个接口(interface)的类的类型

java - 没有数据的 RxJava2 主题

java - 我应该如何将系统属性选项传递给我的 jar 文件?

ios - 创建 UIViewController 时什么时候使用 init()?

scala - 以蛋糕模式抽象数据库客户端

java - ThreadLocal是在TLAB中分配的吗?