实现SortedSet的Java类应该提供一个迭代器,它按照升序迭代其元素,此外还提供一些其他方法。但是,我认为SortedSet接口规范不可能强制执行它指定的行为约束。SortedSet只有几个实现类可以实现的方法,而不需要实际满足返回升序迭代器的要求,或者实际上需要有一个有效的比较器。
仅仅查看接口方法而不知道它的名称并不能告诉开发人员应该实现哪些核心行为--实现类。
实现开发人员应该读取Javadoc并遵循规范才能正确实现吗?SortedSet不应该确保实现类实际上返回一个升序迭代器。否则,这个接口有什么意义呢?
发布于 2022-02-17 07:16:47
接口通常充当契约或蓝图,实现将遵循该契约或蓝图。SortedSet
的目的实际上是为代码可以使用的排序集提供标准接口,同时允许切换实现(例如,切换到性能更好的实现)。
因此,答案是肯定的,实现必须符合正式记录契约的Javadocs。任何不遵循文档行为的实现都被认为是错误的实现。
https://stackoverflow.com/questions/71160520
复制