Comments 2
Вы работали в проекте, в котором классы как капустные кочаны? Не рекомендую.
Не надо оборачивать стандартные классы, это усложняет понимание, стандартные классы нужно знать, понимать и любить.
SOLID! Классы должны делать ровно то, что они должны делать. Класс списка не должен заниматься логированием. Если это пример (согласен), то неудачный.
С библиотеками - согласен, полезно. Но с библиотеками, это называется "адаптер". Такой адаптер должен обеспечивать интерфейс не только для данной библиотеки, а для всего множества аналогов, раз. И должен обеспечивать легкую замену одной библиотеки другой, всякий DI и прочий SOLID, пример хороший, но лучше развить.
TL/DR. КГ/АМ
public class ConnectionWrapper {
...
try (ConnectionWrapper db = new ConnectionWrapper("jdbc:h2:mem:test", "user", "password")) {
И на основании чего такой код будет скомпилирован?
Создадим обертку, упрощающую обработку задач.
Вообще какой-то говнокод. Что такого делает обёртка, чего не делает CompletableFuture
.
Создание и использование оберток (wrappers) в Java: подробный разбор