Где взять строковый литерал «UTF-8» в аннотациях Java?(StandardCharset.UTF_8.name () там не будет работать) - PullRequest
0 голосов
/ 25 июня 2019

Хотя StandardCharset.UTF_8 подходит, если вам нужен Charset, и StandardCharset.UTF_8.name () - хорошо, если вам нужна константа String для этой кодировки в обычном коде Java, нам не повезло с официальной константой для «UTF-8» в атрибутах аннотаций, так как вызов .name () недостаточно постоянен для аннотаций.

Сама Java не содержит их, и org.apache.commons.lang3.CharEncoding.UTF_8 (или фактически сам класс CharEncoding) помечены @deprecated и помечены для удаления в будущем выпуске.

Есть ли лучшая практика для указания "UTF-8", отличного от буквально в атрибутах аннотации?

import feign.Headers;
import feign.RequestLine;

public interface MyInterface {
    @RequestLine("GET /foo/bar")
    @Headers("Accept: application/xml", 
             "Accept-Charset: " + StandardCharset.UTF_8.name())
    String getData();
}

Приведенный выше код не компилируется, потому что UTF_8.name () не является константой. Обратите внимание, что атрибут feign @Headers является лишь примером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...