如果你看一下Sun的实现的源代码Class.getSimpleName(),你会发现它似乎每次调用它时都会返回一个新的String实例.但是,Class类中的许多其他功能都是缓存的.
由于简单的名称计算似乎并不容易,并且JavaDoc中没有任何内容表明它必须每次返回一个新实例,因此它应该是缓存的一个很好的候选者.我想知道为什么这个没有缓存有任何设计原因?
我问,因为许多框架一直使用简单的名称,这是一个很容易缓存的东西.
在 OpenJDK 11 及更高版本中,类名被缓存。请参阅 OpenJDK 源代码Class.java并搜索private ReflectionData<T> reflectionData()从该getSimpleName方法调用的方法。
有关详细信息,请参阅票证JDK-8187123。
| 归档时间: |
|
| 查看次数: |
2678 次 |
| 最近记录: |