Open1

Javaのメソッドで返り値を複数にする方法

Lamron🖇Lamron🖇

Javaのメソッドは(2022年12月現在)一つの返り値しか返せませんが、以下の方法で擬似的に複数の値を返すことができます(他の方法もありますが一番シンプルでバグが発生する可能性が低いもののみ紹介します)。

型が同じ場合

返り値がすべて文字列など同じ型の場合は配列を使うといいでしょう。

public String[] retunMultipleStrings(String str) {
    return str.split(",");
}

様々な型の返り値を返したい場合

Javaはバージョン14からrecordというものが追加され、メソッドがなく複数のデータをまとめて保持したいだけの場合はclassよりもシンプルに書けます。

MultipleValues.java
public record MultipleValues(String str, double probability, int point) {}

使い方は以下の様になります。

Main.java
    public static MultipleValues returnMultipleValues() {
        return new MultipleValues("Choice", 0.50, 10);
    }

    public static void main(String[] args) throws Exception {
        MultipleValues values = returnMultipleValues();
        System.out.println("str=" + values.str());//str=Choice
        System.out.println("probability=" + values.probability());//probability=0.5
        System.out.println("point=" + values.point());//point=10
    }