Хотя 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 является лишь примером.