S-JIS[2023-09-23/2024-03-22] 変更履歴
Java21の無名変数(プレビュー版)について。
2023/9/19にリリースされたJava21で、プレビュー版として無名変数が使えるようになった。
すなわち、使用しない変数に「_」が指定できるようになった。
無名変数はJava22で正式機能になった。[2024-03-22]
無名変数はJava21ではプレビュー版の機能なので、この機能を使いたい場合はコンパイル時に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
無名変数「_」の例。
使用箇所 | 例 |
---|---|
ローカル変数 | int _ = 1; |
for文 | for (int i = 0, _ = someInt(); i < 10; i++) { |
for each文 | var list = List.of("a", "b", "c"); |
try-with-resources | Closeable c1 = () ->
System.out.println("c1.close"); |
catchブロック | try { |
ラムダ式の引数 | BiFunction<Integer,Integer,Integer> f =
(x, _) -> x * 2; |
ラムダ式の引数(var) | BiFunction<Integer,Integer,Integer> f = (var x,
var _) -> x * 2; |
insntaceofのパターンマッチング | record Point(int x, int y) {} |
switchのパターンマッチング | switch (o) { |