Частный конструктор в абстрактном классе

Попробуйте этот путь: удалите все .class файлы в ваших каталогах проектов (и, конечно же, все подкаталоги). Rebuild.

Иногда mvn clean (если вы используете maven) не очищает файлы .class, созданные вручную javac. И эти старые файлы содержат старые подписи, что приводит к NoSuchMethodError.

13
задан ZhaoGang 16 December 2018 в 18:25
поделиться

1 ответ

Заключительный класс только с частными конструкторами является дизайном, используемым одиночными элементами и мультитоннами.

абстрактный класс, который имеет только частных конструкторов, является единственным способом, которым я видел, чтобы препятствовать тому, чтобы класс был инстанцирован. Я видел, что это раньше создавало служебные классы (которые только имеют статические методы и/или участников).

Что касается установки пользовательских ожиданий я вижу, что https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html состояния "Абстрактные классы нельзя инстанцировать, но они могут быть разделены на подклассы". Я отмечаю, что это не указывает намерения, что они, как ожидают, будут разделены на подклассы.

я также отмечаю однако, что, просматривая некоторый исходный код Java нахожу, что следующие проекты используются (ни один из которых не является абстрактными классами только с частными конструкторами):

0
ответ дан 1 December 2019 в 18:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: