Эти методы создают новые экземпляры, поэтому вы ДОЛЖНЫ назначать их. Они были добавлены, чтобы получить немного более функциональный стиль, пытаясь сделать большинство объектов неизменяемыми, что, в свою очередь, очень помогает с параллелизмом (в основном может делиться экземплярами без синхронизации).
Соглашение об именах пытается прояснить это: set - методы меняют состояние, при этом методы xxx () являются «текущими фабриками».
что некоторые фреймворки используют плавные методы исключительно для объединения в цепочку, но в большинстве случаев они предназначены для объектов Builder (изменяемые), и в результате получающиеся неизменные объекты не имеют методов для изменения состояния; но могут быть методы для создания новых строителей.
Джексон в большинстве случаев использует методы withXxx (), без компоновщиков (в некоторых случаях используются полные компоновщики, но их меньшинство).
Как вы правильно заметили, проблема 686 связана с конкретным случаем изменения функций через интерфейс модуля. Это неблагоприятный побочный эффект других изменений и должен быть адрес для следующего выпуска. Но до тех пор, пока вам не понадобится изменить функции напрямую через ObjectMapper (setDeserializationConfig (...), или настроить (...), или использовать устаревшие методы, если вы должны использовать интерфейс модуля.