Puteam să jur că am apăsat pe butounul de Publish din editor. 👴
La momentul în care am început să scriu articolul, Java 13 nu era in stadiul de GA, dar acum mai sunt 5 zile si și apare Java 14. 😀
Două noi funcționalități vor contribui la reducerea verbozității in baza de cod a aplicațiilor.
Text blocks sau multi line strings sau raw strings
Un feture bine venit. Pe scurt:
String html = """ <html> <body> <p>Hello, World</p> </body> </html> """; String json = """ { "name":"mkyong", "age":38 } """;
Sintaxa este asemănatoare, dacă nu identică cu ce este in Kotlin și Python. Încă nu există conceptul de string interpolation ca în C# sau Javascript, darrrrr este binevenit și acest lucru. Văd utilitatea acestei construcții în query-urile sql complexe. Dacă mai intră în joc și parametrii, se poate folosi String#format
var query = String.format(""" select * from table where name = %s """, name); var query1 = """ select * from table where name = %s""" .formatted(Main.class.getName());//deprecated method System.out.println(query); System.out.println(query1);
Rezultatul este următorul:
select * from table where name = cosmin
select * from table where name = com.company.Main
Mai multe lucruri despre aceast feature si o analiză mai detaliată, in acest link
Switch expressions
Sunt multe de discutat despre acest lucru, alții au făcut-o mai bine si mai în detaliu. Eu mă voi rezuma la un exemplu de cod scurt și la obiect
static void howMany(int k) { System.out.println( switch (k) { case 1 -> join("-", "java", "javascript", "C#"); // a complicated expression :D case 2 -> "two" ; default -> "many"; } ); } // howMany(1) = java-javascript-C#
Sigur, nu recomand acel mod de screre al codului 😀
In loc de concluzie
Cam atât din partea mea!
Cel putin pe partea de scriere de cod.
De asemenea, las câteva link-uri cu mai multe detalii despre ce am scris mai sus, precum si alte functionalități introduse in limbaj
- https://blog.codefx.org/java/java-13-guide/
- https://mkyong.com/java/what-is-new-in-java-13/
- https://openjdk.java.net/projects/jdk/13/
- https://www.baeldung.com/java-pattern-matching-instanceof
- https://blog.codefx.org/java/enable-preview-language-features/
- https://vladmihalcea.com/multiline-string-java-text-blocks/