Skip to main content

Java 13 - Example to use Text Blocks for Multi line String literals


Introduction

Lengthy Strings in Java code becomes hard to read. Multiline String literals can be XML, JSON, HTML, SQL queries, Hibernate or JPA queries, etc.

Example

 String html =  "   <html>\r\n" + 
  "          <body>\r\n" + 
  "             <p>Hello, world</p>\r\n" + 
  "          </body>\r\n" + 
  "    </html>\r\n" ;

Solution

Thanks to the Text blocks feature introduced in Java 13. Now, these multiline String literals are more presentable in Java code.

1. Configuring Eclipse for Text Blocks

1.1 Requirments

  1. JDK 13
  2. Eclipse Version: 2020-03 (4.15.0)

1.2 Eclipse Error 1

String literal is not properly closed by a double-quote

1.2.1 Solution

Change the source of your program to 13 as shown in the following screenshot

Java Source 13
Java Source 13

1.3 Eclipse Error 2

Text Blocks is a preview feature and disabled by default. Use --enable-preview to enable

1.3.2 Eclipse Error Solution

Move your mouse to Enable preview features on project properties and enable it.

Enable preview features on project properties
Enable preview features on project properties


Note: Eclipse does not provide the option to choose Java version 14 for now and if you try to run the example with JDK 14, you may observe the following exception

Error: LinkageError occurred while loading main class TextBlock
java.lang.UnsupportedClassVersionError: TextBlock (class file version 57.65535) was compiled with preview features that are unsupported. This version of the Java Runtime only recognizes preview features for class file version 58.65535

2.1 Text Block Example 

public class TextBlock {
 public static void main(String[] args) {

  String html = """
             <html>
                 <body>
                     <p>Hello, world</p>
                 </body>
             </html>
                 """;  

  System.out.println(html);
 }
}

2.2 Output

Output

Conclusion

Text blocks is not another data type. Text blocks feature helps the developers to make the multiline String literals readable.





Comments

Popular posts from this blog

Eclipse - Server Tomcat v8.5 Server at localhost failed to start.

When I try to launch the tomcat from Eclipse, I encountered the following error Server Tomcat v8.5 Server at localhost failed to start. Solution Step 1  Delete the .snap file located at the following location     eclipse workspace Path\ .metadata\.plugins\org.eclipse.core.resources Step 2 Delete the  tmp0  folder from the following path      eclipse workspace Path \.metadata\.plugins\org.eclipse.wst.server.core Step 3  Delete the server from servers list Step 4  Remove already added Tomcat Server      i)  Click on Define a new Server     ii)  Select Server Runtime Environments     iii) Select the Tomcat Server and remove it as follows Remove Selected Server Step 5 Make sure that correct version of Server is configured in Project Properties Step 6 Restart the Eclipse IDE.

Intellij : How to add @author comment to every new class

 Introduction In this tutorial, we will learn how to add @author comments to every new class that we create. We can achieve it using either of the following two solutions Solution 1:  Automatically add @author comments to every new class using Files and Code Templates Open File -> Settings -> Editor -> File and Code Templates -> Includes Click on Includes . Under File Header , enter the following comments text /**  * @author ${USER}  * @Date ${DATE}   */ Intellij - add @author comments Solution 2: Autocompletion of @author Open File  ->  Settings  ->  Editor  -> Live Templates Select Java and then click on + button In Abbreviation, enter @a In template text , enter the following comments           /**             * @author ${USER}             * @Date ${DATE}            */ In option , Expands with select SPACE Intellij - Autocompletion @author You can simply add the @author comments by typing @a and then click SPACE

hibernate-release-5.4.4.Final - Required Jars

Introduction Hibernate (Object Relational Mapping framework) is an implementation of Java Persistence API (JPA) specification.   Required Jars for Hibernate 5.4.4 Following Jars resided inside the required folder are the mandatory jars required for Hibernate 5.4.4 antlr-2.7.7.jar byte-buddy-1.9.11.jar classmate-1.3.4.jar dom4j-2.1.1.jar FastInfoset-1.2.15.jar hibernate-commons-annotations-5.1.0.Final.jar hibernate-core-5.4.4.Final.jar istack-commons-runtime-3.0.7.jar jandex-2.0.5.Final.jar javassist-3.24.0-GA.jar javax.activation-api-1.2.0.jar javax.persistence-api-2.2.jar jaxb-api-2.3.1.jar jaxb-runtime-2.3.1.jar jboss-logging-3.3.2.Final.jar jboss-transaction-api_1.2_spec-1.1.1.Final.jar stax-ex-1.8.jar txw2-2.3.1.jar Hibernate 5.4.4 release is compatible with  Java 8 or 11  JPA 2.2 References https://hibernate.org/orm/releases/5.4/