Класс Elements
в JSoup имеет много специфических методов для своей функции, например,
toggleClass(String className)
html()
Который не будет доступен в ArrayList. Я думаю, ArrayList
можно было бы расширить, но автор Elements
пошел на композицию. Elements
HAS-A ArrayList
экземпляр, который он хранит в тайне. Elements
предоставляет методы интерфейса List, специальные методы и др.
Но Elements
поддерживается ArrayList - таким образом, автор может также декорировать методы ArrayList, которые он выберет для обнародования через свой собственный класс. Это выдержка из исходного кода:
private List<Element> contents;
public Elements() {
contents = new ArrayList<Element>();
}
Кстати: раньше вы видели оболочки до Java 5, чтобы обеспечить безопасность типов для Java Collections
, но начиная с Java 5 Generics прекратили многое из этого.