W Javie 15 dotarł do nas feature o nazwie Text Block, choć w fazie preview był już od bodaj wersji 13.
Mam dla niego nawet doskonały, praktyczny przykład wprost z mojego kursu Kompletna aplikacja w języku Java – od zera do installera ;). Do tej pory, gdy chcieliśmy sformatować wizualnie np. zapytanie do bazy danych
ResultSet resultSet = statement .executeQuery("SELECT R.ID, R.ROOM_NUMBER, B.BED FROM ROOMS AS R LEFT JOIN BEDS AS B ON R.ID=B.ROOM_ID");
Kończyliśmy z czyś takim
Statement statement = SystemUtils.connection.createStatement(); ResultSet resultSet = statement.executeQuery("" + "SELECT " + "R.ID, " + "R.ROOM_NUMBER," + "B.BED " + "FROM " + "ROOMS AS R " + "LEFT JOIN " + "BEDS AS B " + "ON" + " R.ID=B.ROOM_ID");
Używając „bloku tekstu” możemy zapisać to w o wiele przyjemniejszy dla oka sposób:
Statement statement = SystemUtils.connection.createStatement(); ResultSet resultSet = statement.executeQuery(""" SELECT R.ID, R.ROOM_NUMBER, B.BED FROM ROOMS AS R LEFT JOIN BEDS AS B ON R.ID=B.ROOM_ID """);
Odpada nam więc ciągłe otwieranie ” i używanie plusów do łączenia. Blok tekstu zaczynamy i kończymy potrójnym cudzysłowiem """
Dodatkowo wewnątrz bloku możemy do woli korzystać z „ bez konieczności ciągłego używania \” np.
""" Przykład "użycia" """
Text block jest traktowany jak zwyczajny String, więc możemy spokojnie zastosowań String.format bądź .replace, by wstrzyknąć tam dane.
int id = 2; String query =""" SELECT ID, ROOM_NUMBER FROM ROOM WHERE ID = %d """; String finalQuery = String.format(query, id);
Dodano nawet specjalną funkcję do klasy String, by ułatwić powyższe
int id = 2; String finalQuery =""" SELECT ID, ROOM_NUMBER FROM ROOM WHERE ID = %d """.formatted(id);
By być na bieżąco i mieć realny wpływ na tematykę tworzonych przeze mnie artykułów zapraszam do dołączenia do mojego newslettera.