Почему мы не можем создать экземпляр класса Collections (не Collection Interface)? - PullRequest
3 голосов
/ 01 января 2012

Collections - это открытый класс, тогда мы можем вызвать его неявный конструктор по умолчанию.Он не имеет приватного конструктора, который бы препятствовал созданию объекта или заставлял иметь статический метод фабрики.Когда я создаю экземпляр как new Collections(), я получаю ошибку как «Конструктор не виден».Короче говоря, почему у нас не может быть экземпляра класса java.util.Collections?Спасибо.

Ответы [ 2 ]

9 голосов
/ 01 января 2012

Из документации : «Этот класс состоит исключительно из статических методов, которые работают или возвращают коллекции.»

Другими словами, Collections - это просто коллекция методов.Пример этого не имеет никакого смысла.Это похоже на математические функции: у вас нет экземпляра математики, вы просто используете функции.

Это не interface, поскольку у него есть конкретные методы.

4 голосов
/ 01 января 2012

Причина сообщения «Конструктор не виден» заключается в том, что конструктор является частным (строка 73) или, по крайней мере, согласно этому сайту . И как уже говорили другие, что бы вы сделали с экземпляром этого класса, так как он содержит только статические методы

// Suppresses default constructor, ensuring non-instantiability.
private Collections() {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...