"StandardCharsets" 상수가 우선시 되어야 합니다

 

JDK7부터 java.nio.charset.StandardCharsets 클래스를 도입했습니다. 이 클래스에는 Java 플랫폼의 모든 구현에서 사용 가능할 수 있도록 보장된 모든 문자 집합에 대한 상수를 제공합니다.

  • ISO_8859_1
  • US_ASCII
  • UTF_16
  • UTF_16BE
  • UTF_16LE
  • UTF_8

이러한 상수는 다음과 같은 경우보다 우선되어 사용되어야 합니다

  • “UTF-8”과 같은 문자열 대신 사용되어야 합니다. 이러한 문자열을 사용하면 실제로는 절대 일어나지 않을 UnsupportedEncodingException을 위해 catch/throw를 고려해야한다는 단점이 있습니다
  • GuavaCharsets 클래스 대신 사용되어야 합니다. 이 클래스는 JDK7 이후 더 이상 사용되지 않습니다

규칙을 어긴 코드

try {
  byte[] bytes = string.getBytes("UTF-8"); // 규칙을 어긴 코드; StandardCharsets.UTF_8 대신 문자열을 사용하고 있습니다
} catch (UnsupportedEncodingException e) {
  throw new AssertionError(e);
}
// ...
byte[] bytes = string.getBytes(Charsets.UTF_8); // 규칙을 어긴 코드; Guava 방식은 JDK7 이후 더 이상 사용되지 않습니다

규칙을 준수한 해결책

byte[] bytes = string.getBytes(StandardCharsets.UTF_8)

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project