rua*_*akh 9 java javadoc language-lawyer java-8
JDK类除了Javadoc之外还有其他任何规范吗?如果是的话,在哪里?
例如,考虑一下Collections.unmodifiableMap.它的Javadoc没有提及线程安全性; 所以,从Javadoc开始,我不能认为将结果映射暴露给其他线程是安全的,而不需要采取我自己的一些特殊步骤来获得线程安全性.但是恕我直言,任何现实的实现都会将内部地图存储在一个final字段中,因此在Java 5及更高版本中,只要内部地图是(在之前的任何访问之间具有"先发生"关系),结果地图将是线程安全的.生成的地图以及之前对内部地图的修改).例如,这就是OpenJDK实现的功能.
那么,我怎么能弄清楚我是否可以轻易地假设一个给定的行为?
Bri*_*etz 10
Javadoc是规范.也就是说,编写良好的规范是非常困难的,平衡两者并不会遗漏有用的东西而不会过度使用(并且会破坏未来发展实现的能力).
如果我不得不猜测,我会说这个被排除在规范之外的原因(除了可能的疏忽)是任何线程安全都是有条件的,而不是基础集合(a)不被发布和(b)不是在创建不可修改的视图后进行修改,这也必须仔细指定.
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |