java - 为什么有些库会定义自己的集合?

标签 java collections oop

例如,在 Jsoup 中,他们定义了一个类 Elements 来收集元素。

通常定义一个类 A 和包含很多 A(s) 的 As。但为什么?为什么我们不直接使用 ArrayList 或其他东西?

最佳答案

JSoup 中的Elements 类有许多特定的方法来实现它的功能,例如

toggleClass(String className) 
html()

这在 ArrayList 上不可用。我想 ArrayList 可以扩展,但是 Elements 的作者已经开始进行组合了。 Elements 有一个 ArrayList 实例,它保持私有(private)。 Elements 公开了 List 接口(interface)的方法、定制方法和其他方法。

但是 Elements 由 ArrayList 支持 - 这样作者也可以装饰他选择通过自己的类公开的 ArrayList 的方法。这是源代码的摘录:

  private List<Element> contents;

    public Elements() {
        contents = new ArrayList<Element>();
    }

顺便说一句:您曾经看到 Java 5 之前的包装器为 Java Collections 提供类型安全,但是自从 Java 5 泛型已经停止了很多这样的事情。

关于java - 为什么有些库会定义自己的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952465/

相关文章:

java - java中私有(private)成员变量的子类访问

java hashCode疑惑

java - 将 List<int[]> .get() 函数与数组进行比较的 boolean 表达式出现问题

java - 从具有附加元素的给定列表派生列表

java - 如何将列表中的两个项目合并为一个?

c# - xml到linq与两个类c#

python - 如何在 Python 中重构类?

java - 如何访问从父类(super class)传递下来的子类属性?

java - Java中的基数算法理解

java - 单击按钮时关闭容器