3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ずんだの縦読み問題 Java 12 Early-Access 版

Last updated at Posted at 2018-09-27

元ネタ:


他言語ではヒアドキュメントなどと呼ばれる機能がJavaでは長らくサポートされておらず、ソースコード内に複数行にわたる文字列を記述したい場合

  • ひたすら+で結合する。
  • String::joinを活用する。
  • 何かしらの外部ライブラリを使う

などの対応を取る必要があり、コードをわかりづらくする原因になってきました。そういう批判・要望を受けてなのか、Project AmberではRaw String Literalという機能が提案されており、2018-09-28現在、JDK12のEarly-Access版に実装されています。

Early-Accessといっても、試すにあたってはさほど難しい手順はなく、JDK 12 Early-Access Buildsに用意されている、プラットフォームごとにビルドされたtar-ballを解凍するだけです。わたしはLinux用のtar-ballを利用しました。

tar xvf openjdk-12-ea+12_linux-x64_bin.tar.gz

するとjdk-12というディレクトリができるので、そのディレクトリと同じ階層に以下のようなMain.javaを用意します。

Main.java
public class Main {
    public static void main(String[] args) {
        var tweet = `
            忙しくてついったいじれない
            さみしい
            つらい
        `;
        tweet.align().lines().map(line -> line.substring(0, 1)).forEach(System.out::println);
    }
}

あとは以下の要領でコンパイルし、実行すると、想定通りの結果を得ることができました(´・ω・`)

$ ./jdk-12/bin/javac --enable-preview --release 12 Main.java
Note: Main.java uses preview language features.
Note: Recompile with -Xlint:preview for details.
$ ./jdk-12/bin/java --enable-preview Main
忙
さ
つ

なお詳細なバージョン情報は以下の通りでした。

$ ./jdk-12/bin/java --version
openjdk 12-ea 2019-03-19
OpenJDK Runtime Environment 19.3 (build 12-ea+12)
OpenJDK 64-Bit Server VM 19.3 (build 12-ea+12, mixed mode)

参考:

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?