我在接受采访时被问到哪个收集打破了S.O.L.I.D原则?
任何人都可以解释它是哪一个以及如何?
答案 0 :(得分:12)
Java提供了一个名为IdentityHashMap<K,V>
的通用集合,它通过故意违反Map<K,V>
合同来破解Liskov替换原则 - SOLID中的“L”。
以下是IdentityHashMap<K,V>
类文档中的注释:
这个类不是通用的Map实现!虽然这个类实现了Map接口,但它故意违反了Map的一般契约,它要求在比较对象时使用equals方法。此类仅适用于需要引用相等语义的极少数情况。