【发布时间】:2012-01-21 23:50:06
【问题描述】:
正如我一直理解的那样,instanceof 适合的主要情况是:
- 实现
Object.equals(Object)。因此,如果我正在编写List类,并且出于任何原因不扩展AbstractList,我将通过首先测试o instanceof List,然后比较元素来实现equals(o)。 - 对不改变语义但只改变性能的特殊情况进行了重要的(算法?)优化。例如,
Collections.binarySearch执行instanceof RandomAccess测试,并对RandomAccess和非RandomAccess列表使用稍微不同的二分搜索。
我不认为instanceof 在这两种情况下代表代码异味。但是还有其他情况可以使用instanceof吗?
【问题讨论】:
标签: java design-patterns