rspec/rules/S4719/java/rule.adoc

45 lines
1.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

JDK7 introduced the class ``++java.nio.charset.StandardCharsets++``. It provides constants for all charsets that are guaranteed to be available on every implementation of the Java platform.
* ISO_8859_1
* US_ASCII
* UTF_16
* UTF_16BE
* UTF_16LE
* UTF_8
These constants should be preferred to:
* the use of a String such as "UTF-8" which has the drawback of requiring the ``++catch++``/``++throw++`` of an ``++UnsupportedEncodingException++`` that will never actually happen
* the use of Guavas ``++Charsets++`` class, which has been obsolete since JDK7
== Noncompliant Code Example
----
try {
byte[] bytes = string.getBytes("UTF-8"); // Noncompliant; use a String instead of StandardCharsets.UTF_8
} catch (UnsupportedEncodingException e) {
throw new AssertionError(e);
}
// ...
byte[] bytes = string.getBytes(Charsets.UTF_8); // Noncompliant; Guava way obsolete since JDK7
----
== Compliant Solution
----
byte[] bytes = string.getBytes(StandardCharsets.UTF_8)
----
ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)
include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]