Почему конструктор в классе-оболочке не рекомендуется использовать с JDK9?
============================================================================

 Здравствуйте, читаю книгу Шилдта по Java.  

Вопрос по классам-оболочкам, цитата:  

>   
> 
> Конструктор Character( ) имеет следующую форму: Character (char символ)  
> 
> Но, начиная с версии JDK9, конструктор класса Character больше не рекомендован к употреблению. В настоящее время для получения объекта типа Character рекомендуется пользоваться статическим методом valueOf( ). Этот метод возвращает объект типа Character, в который заключается символьное значение ch примитивного типа char  
> 
> 

  

Аналогичный метод valueOf( ) используется и для других оболочек: Byte, Short, Integer, Long, Float, Double.  

Вопрос: почему с JDK9 не рекомендуется использовать конструктор, а меняют его на метод? 

 Современные архитектурные принципы отдают предпочтения фабричным методам. Правила хорошего тона требуют, чтобы конструктор не занимался ни чем, кроме инициализации полей. Фабричный метод же может делать очень много дополнительных операций, вроде интернирования. Фабричный метод может осуществлять операции на уровне экземпляров, например возвращать синглтон. Фабричный метод может возвращать не только экземпляр класса, но и его подтипы. Фабричные методы могут иметь говорящие имена. И т.д. и т.п.