Java泛型HashTable代码中new Object()外层括号的作用是什么
解答
你提到的代码片段:
public class HashTable <K,V> implements Iterable<K> { private final K TOMBSTONE=(K) (new Object()); }
其中new Object()外侧的括号,核心作用是明确强制类型转换的作用范围,提升代码可读性,没有额外的语法强制要求:
- 从Java语法优先级来看,
new关键字的优先级本来就比强制类型转换符(K)高,就算你把括号删掉写成(K) new Object(),运行逻辑和编译结果和带括号的版本完全一致 - 加这层括号是写代码的人主动加的“提示”:一眼就能看出来是把
new Object()生成的整个对象实例作为转换目标,不需要再去回忆运算符优先级,也避免后续修改代码时(比如给新生成的对象追加方法调用)搞错优先级产生bug。
内容的提问来源于stack exchange,提问作者micro cystis
相关产品推荐
相关产品推荐

