Документация для конструктора new Boolean (логическое значение)
в Java гласит:
Примечание. конструктор. Если не требуется новый экземпляр, статическая фабрика
valueOf (boolean)
, как правило, является лучшим выбором. Это, вероятно, даст значительно лучшую производительность пространства и времени.
Если да, то почему этот конструктор общедоступный и не устаревший? Есть ли веская причина использовать этот конструктор вместо Boolean.valueOf ()
?
valueOf()
был добавлен только в Java 1.4, поэтому кажется, что конструкторы существуют для обратной совместимости.
Этот билет объясняет причины отказа от устаревших конструкторов:
Из-за нарушения, которое может иметь место для устаревания API, в настоящее время API должен быть «активно опасным» для быть устаревшим, как Thread.stop. Хотя использование этого конструктора, безусловно, неуместно, оно не поднимается (и не опускается) до уровня опасности, который следует исключить в JDK. В будущем мы можем добавить средство «клеветы», чтобы пометить элементы API, которые не так плохи, что их следует считать устаревшими, но их не следует использовать в большинстве случаев. Этот конструктор будет хорошим кандидатом на клевету.
Я не могу представить себе реалистичный сценарий, где использование конструкторов Boolean
было бы лучшим способом сделать что-то полезное.
Другая, не обязательно хорошая причина, вероятно, состояла бы в том, чтобы просто поддерживать ее в соответствии с другими нативными обертками.