Class.getName() 的静态调用

2022-09-02 21:05:39

我偶然发现了以下代码:NestedRuntimeExceptionorg.springframework.core

static {
    NestedExceptionUtils.class.getName();
}

有这样一个块有什么用?


答案 1

它将加载类以避免类装入器死锁。报告了一个错误(SPR-5607)“Non-trivial NestedRuntimeException.getMessage()可能导致OSGi上的死锁”,这是同一问题的解决方案。eagerlyNestedExceptionUtils

编辑:

在源代码中也将其作为注释提及。有关完整的源代码文档,请点击链接。下面是类的源代码部分。NestedRuntimeException

static {
    // Eagerly load the NestedExceptionUtils class to avoid classloader deadlock
    // issues on OSGi when calling getMessage(). Reported by Don Brown; SPR-5607.
    NestedExceptionUtils.class.getName();
}

答案 2

推荐