パターン マッチングは Java で非常に期待されている機能であり、言語にさらなるパワーと柔軟性をもたらします。 Java 21 では switch ステートメントのパターン マッチングが導入されており、これによりコードが簡素化され、ボイラープレートが削減されます。この新機能がどのように機能し、なぜ有益なのかを見てみましょう。
スイッチのパターン マッチングを使用すると、値をパターンと照合できるため、コードがより表現力豊かで読みやすくなります。複数の if-else ステートメントや複雑な switch ケースを使用する代わりに、より簡潔で保守しやすいコードを作成できるようになりました。
スイッチのパターン マッチングがどのように機能するかを示す簡単な例を次に示します。
static String formatterPatternSwitch(Object obj) { return switch (obj) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("String %s", s); default -> obj.toString(); }; }
この例では、formatterPatternSwitch はオブジェクトを受け取り、その型に基づいてフォーマットされた文字列を返します。何が起こっているかの内訳は次のとおりです:
詳細な例を挙げてみましょう: さまざまな形状の処理
さまざまな形状を処理し、その面積を計算する必要があるシナリオを考えてみましょう。スイッチのパターン マッチングによってコードが簡素化される方法は次のとおりです:
abstract sealed class Shape permits Circle, Square, Rectangle {} final class Circle extends Shape { double radius; Circle(double radius) { this.radius = radius; } } final class Square extends Shape { double side; Square(double side) { this.side = side; } } final class Rectangle extends Shape { double length, width; Rectangle(double length, double width) { this.length = length; this.width = width; } } static double calculateArea(Shape shape) { return switch (shape) { case Circle c -> Math.PI * c.radius * c.radius; case Square s -> s.side * s.side; case Rectangle r -> r.length * r.width; }; }
この例では:
Java 21 のスイッチのパターン マッチングは、コードの読みやすさ、簡潔さ、タイプ セーフを強化する強力な機能です。 switch ステートメントで値をパターンと直接照合できるため、多くの一般的なコーディング タスクが簡素化されます。 Java 開発者は、よりクリーンで保守しやすいコードを作成するために、この機能をぜひ検討して採用する必要があります。
ニーズに合わせてこのセクションを自由に変更または拡張してください。
以上がJava 21 のスイッチのパターン マッチングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。