Java:ThreadLocal get()方法的替代方案

时间:2017-03-08 08:17:24

标签: java-8 thread-local

我在想,是否有一种优雅的方式来获取Threadlocal的initialValue? 我问这个的原因是因为我正在将非线程安全项目转换为线程安全项目,问题是,有近千个不同的类字段无法在所有线程之间共享,并且必须是每个线程独有的,因此使用ThreadLocal解决了这个问题。

问题是,一旦字段转换为ThreadLocal,在代码中的每个字段用法中,我必须添加一个.get(),这可能需要花费数年才能完成。

例如:

声明字段:

private ThreadLocal<String> field1 = new ThreadLocal<>();

初始化字段:

field1.set("input");

打印字段:

System.out.println("field1 = "+field1.get());

必须有一个可能解决这个问题的IDE快捷方式。

但是考虑到代码外观,代码含义,优雅和未来发展,我的目标就是知道是否有一种优雅的方式来实现ThreadLocal的字段值,就像在C#中你有一个你可以包装的字段属性它按照你想要的方式,只需输入字段的名称即可获得它的价值

我希望实现的目标:

声明字段:

private ThreadLocal<String> field1 = new ThreadLocal<>();

初始化字段:

field1.set("input");

优雅的包装:

{some ThreadLocal.get() property wrapper}

打印字段:

System.out.println("field1 = "+field1);

总的来说,我有点不满意.get()解决方案..

有什么建议吗?

0 个答案:

没有答案