int value = 35634646; DecimalFormat myFormatter = new DecimalFormat("#,###"); String output = myFormatter.format(value); System.out.println(output);
OUTPUT : 35,634,646
Когда мы посмотрим, как реализованы JacksonEncoder
и JacksonDecoder
, мы заметим, что они создают новые ObjectMapper
в конструкторе:
public JacksonDecoder(Iterable<Module> modules) {
this(new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.registerModules(modules));
}
[1115 ] Выше конструктор вызывается по умолчанию с помощью emptyList()
. Итак, нам нужно предоставить все модули, которые мы хотим использовать вручную.
Для получения максимальной отдачи от Java 8
и Jackson
зарегистрируйте все 3 модуля из jackson-modules-java8 :
private val client = Feign.builder()
.encoder(JacksonEncoder(Arrays.asList(JavaTimeModule(), ...)))
.decoder(JacksonDecoder(Arrays.asList(JavaTimeModule(), ...)))
.target(Client::class.java, host)
РЕДАКТИРОВАТЬ [1113 ]
Ther - конструктор, позволяющий использовать ObjectMapper
экземпляр. Вы можете создать новый экземпляр или добавить его из своего контейнера:
val mapper = ObjectMapper()
mapper.registerModule(ParameterNamesModule())
.registerModule(Jdk8Module())
.registerModule(JavaTimeModule())
// other configuration
val client = Feign.builder()
.encoder(JacksonEncoder(mapper))
.decoder(JacksonDecoder(mapper))
.target(Client::class.java, host)