IT初学者部

プログラミングに関することを中心に、備忘録として残していきます。

Java15から追加されたテキストブロックについて軽く解説します

はじめに

Springbootの作成について記事を作っているときに、なぜJava15を指定するのか?という話になっていたので、そのへんについて記載していきます。

結論としては、テキストブロックを利用できるためです。 テキストブロックってそもそもなんだよ?的な話も含めてここに書いていこうと思います。

概要

例えば、Springbootでもそうじゃなくてもいいですが、javaでコードを書く時にこんな感じになることってありませんか?

   String sql = "SELECT\r\n"
            + "          id\r\n"
            + "          , name\r\n"
            + "          , delete_flg\r\n"
            + "      FROM\r\n"
            + "          mst_test;";

これは、Springbootの記事作成時に適当に作ったデータベースからレコードを取得するときのSQL文です。A5M2とかでSELECT文を作成し、CTRL+Qで綺麗に並び替えたあとにそのまま貼り付けるとこんな感じになります。

要は、 改行の処理を自動で加えてくれるんですよね。 加えてくれる事自体は別にいいんですが、ソースコードを見直したりすると、「なんか汚いな…」という気持ちになると思います。

それに、シンプルに見辛いです。見辛いだけなら別に耐えればいいんですが、業務上、不具合などが報告されたときにそもそもここに書いているSELECT文って正しいの?みたいなのを調べるときに面倒です。

これが、改行とかの処理がなければそのままコピーしてくればいいだけなんですが、SQLで実行するために清書しなければいけないので、そのへんが手間。そこを解決してくれるのが、テキストブロックになります。

一目瞭然だよね?って話

   String sql = """
        SELECT
            id
            , name
            , delete_flg
        FROM
            mst_test;
    """;

マークダウンのシンタックスハイライトだと見栄えはいまいちですが、eclipseなんかで開くと一目瞭然で見やすいです。テキストブロックを利用する目的として挙げられていたのは、htmlやらを呼び出すときに使えるとかそういうのもあるみたいです。

終わりに

新機能として、テキストブロックが追加されました!とだけ見ても、それが一体どう、なんの役に立つの?と考えてしまいがちです。 つまり、その機能を使って何が出来るのか、それを明確にできるとその機能の意味が見出だせるというものです。

これはjavaの新機能に限らず、DXやらデジタルやらが一体何の役に立つのか?といった命題に答えることが出来るのかどうかで、そこに先があるのか、無いのかが明確にできるんだと思います。

SpringbootアプリケーションのJavaバージョンを上げる処理について、そのうち書きたいと思います。