在Java批注中从何处获取“ UTF-8”字符串文字? (StandardCharset.UTF_8.name()在此处不起作用)

时间:2019-06-25 09:39:55

标签: java character-encoding annotations

虽然如果需要Charset可以使用StandardCharset.UTF_8,而如果需要常规Java代码中的charset可以使用StringChar常量,则StandardCharset.UTF_8.name()可以,但是我们对于官方的注释属性中的“ UTF-8”,因为调用.name()不够恒定以进行注释。

Java本身不包含它们,并且已将org.apache.commons.lang3.CharEncoding.UTF_8(或实际上是CharEncoding类本身)标记为不推荐使用,并标记为在将来的发行版中将其删除。

除了注释属性中的字面意义外,是否还有最佳做法来指定“ 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()不是常数。请注意,假装的@Headers属性只是一个示例。

0 个答案:

没有答案