Consider this piece of code:
public class Main {
public static void main(String[] args) {
String poemTextBlock = """
The woods are lovely, dark and deep,
But I have promises to keep,
And miles to go before I sleep,
And miles to go before I sleep.
""";
System.out.println(poemTextBlock);
}
}
This seemingly perfect code when executed produces the following output
The indentation and white spaces included within the string produced by this text block is not what could have been intended.
To help identifying this not so obviously visible issue, -Xlint:text-blocks compiler option was introduced.
When compiling the code with this option, it throws out warning messages highlight issues with white spaces used within the text block.
It specifically shows these two warning messages
- inconsistent white space indentation - shown if there is inconsistency in the incidental white space characters across the lines within text block
- trailing white space will be removed - shown if a trailing space is present in any of the lines within the text block that would stripped off
Try compiling the above program with -Xlint:text-blocks flag included as in the command below
javac -Xlint:text-blocks Main.java
This gives the two warning messages, as shown below
Main.java:5: warning: [text-blocks] inconsistent white space indentation
String poemTextBlock = """
^
Main.java:5: warning: [text-blocks] trailing white space will be removed
String poemTextBlock = """
^
2 warnings
Sample code used in this post can be downloaded from https://github.com/ashokkumarta/awesomely-java/tree/main/2021/03/Language-Features/Text-blocks/Using--Xlinttext-blocks-compiler-option
No comments:
Post a Comment