S-JIS[2023-09-23/2024-03-22] 変更履歴

mainメソッド簡略化(Java21〜22)

Java21〜22のmainメソッド簡略化(プレビュー版)について。


概要

2023/9/19にリリースされたJava21で、プレビュー版としてmainメソッドが簡略化できるようになった。

従来は、javaコマンドによって実行が開始されるメソッドは、「public static void main(String[])」だった。
(JDK1.5(Java5)で、引数には「String...」も可能になったが)
これに対し、public・staticおよび引数(String[])を省略できるようになる。

また、クラスを定義せずにmainメソッドだけでコンパイルできるようになる。


mainメソッド簡略化はJava21〜22ではプレビュー版の機能なので、この機能を使いたい場合はコンパイル時にjavacコマンドに--enable-previewを付ける必要があり、
また、実行時にjavaコマンドに--enable-previewを付ける必要がある。
JShellで試す場合もjshellコマンドに--enable-previewを付ける。

> javac --enable-preview --release 21 Example.java
> java --enable-preview Example
> java --enable-preview --source 21 Example.java

mainメソッドの例。

パターン 備考
基本(Main.javaのMainクラスを定義) public class Main {
  public static void main(String[] args) {
    System.out.println("main " + args.length);
  }
}
 
クラス定義を省略 public static void main(String[] args) {
  System.out.println("main " + args.length);
}
Main.javaにこれを書いている場合、
コンパイルするとMain.classが生成される。
mainメソッドのpublic・static・引数を省略 void main() {
  System.out.println("main");
}

プレビュー機能へ戻る / Java目次へ戻る / 新機能へ戻る / 技術メモへ戻る
メールの送信先:ひしだま