【问题标题】:Creating object with type safety创建具有类型安全性的对象
【发布时间】:2020-06-02 07:46:27
【问题描述】:

我正在使用 ThreadLocal 将当前登录的用户获取到我的应用程序中

private static ThreadLocal<User> userAuditor = new ThreadLocal<>();
User user = Auditor.userAuditor.get();

如果我在创建上面提到的对象时没有在右侧指定类型,会有什么不同吗

或者我是否必须在创建对象时指定类型,如下所述:

private static ThreadLocal<User> userAuditor = new ThreadLocal<User>();

【问题讨论】:

  • 没有。 &lt;&gt; 是您在左侧指定的任何内容的简写。
  • 当您分配给ThreadLocal&lt;User&gt; 时,它隐含地知道新实例必须获得什么类型。编译器会为你处理。
  • 你为什么使用 ThreadLocal?你要覆盖initialValue吗?

标签: java thread-local


【解决方案1】:

从 java 7 开始,在使用泛型时可以省略右侧的 Diamond 运算符 ,添加此功能只是为了代码可读性,在使用嵌套集合类型时很有帮助不影响代码逻辑和性能,看个人喜好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2022-01-19
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多