Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Enhance IfElseIfConstructToSwitch to support "return" statements

オープン
#776 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@arnabnandy7 がすでに取り組んでいます。

2026年7月3日 から。

  • #1162 @arnabnandy7 による — オープン

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
java
領域
tooling

調査の方向性

IfElseIfConstructToSwitch レシピのエントリポイントから始め、return 文を含む分岐の処理方法を確認してください。既存の制限については関連する issue 718 を読み、その後、この issue の Java 例に対して動作を検証してください。すべての経路が return になる対象の分岐が同等の switch 式に変換され、一方で中間の return ケースは引き続き除外されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

enhancement java 21+ recipe

Currently the IfElseIfConstructToSwitch recipe does not convert to a switch if any of the parts would return.
However, if all branches would return, we could convert it to and it could be a potential candidate. Only the intermediate phase of having returns in the case is not valid, hence would not be picked up by:

    static String formatter(Object obj) {
        if (obj instanceof String s) {
            return s;
        } else if (obj instanceof Long l) {
            return String.valueOf(l);
        } else {
            throw new IllegalStateException("Unexpected value: " + obj);
        }
    }

could become

    static String formatter(Object obj) {
        return switch (obj) {
            case String s -> s;
            case Long l -> String.valueOf(l);
            default -> throw new IllegalStateException("Unexpected value: " + obj);
        };
    }
主要言語
Java
スター
156
フォーク
129
平均マージ
14時間 30分
マージ済み PR(30日)
43

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

openrewrite/rewrite-migrate-java のほかの issue

openrewrite/rewrite-migrate-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。