GradleでJava 13のプレビュー機能を試す

GradleでJava 13のプレビュー機能を試したときのメモ。

Gradleは6.0以降を使用する。
Gradle 6.0 Release Notes

ソースコード

build.gradle

--enable-previewを設定する

plugins {
    id 'java'
    id 'application'
}

group 'com.example'
version '1.0-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_13

repositories {
    mavenCentral()
}

tasks.withType(JavaCompile) {
    options.compilerArgs += ['--enable-preview']
}

test {
    jvmArgs = ['--enable-preview']
}

run {
    jvmArgs = ['--enable-preview']
}

mainClassName = 'com.example.Main'

Main.java

今回はText BlocksとSwitch Expressionsを試す
JEP 368: Text Blocks (Second Preview)
JEP 361: Switch Expressions

package com.example;

public class Main {
    public static void main(String... args) {
        String message = """
        AAA
        BBB
        CCC
        """;
        System.out.println(message);

        System.out.println(isWeekend(DayOfWeek.FRIDAY));
        System.out.println(isWeekend(DayOfWeek.SUNDAY));
    }

    private static boolean isWeekend(DayOfWeek day) {
        return switch (day) {
            case SATURDAY, SUNDAY -> true;
            case MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY -> false;
        };
    }
}

実行結果

% ./gradlew run     
                                                                                                                                                       
> Task :run
AAA
BBB
CCC

false
true

BUILD SUCCESSFUL in 470ms