私はこのような状況に対処するための非常に基本的なアプローチを開発しました。
文字列でセパレータのロジックを使用しました。
たとえば、同じ関数に戻る必要がある場合1.int値2.double値3.文字列値
区切り文字列を使用できます
たとえば、「、。、」この種の文字列は通常、どこにも表示されません。
この区切り文字で区切られたすべての値で構成される文字列を返すことができます
"<intvalue>、。、<double value>、。、<Stringvalue>"
String.split(separtor)[index]を使用して関数が呼び出された場合は、同等のタイプに変換し ます。
説明については、次のコードを参照してください-
セパレーターは="、。、"を使用しました
public class TestMultipleReturns{
public static void main(String args[]){
String result = getMultipleValues();
int intval = Integer.parseInt(result.split(",.,")[0]);
double doubleval = Double.parseDouble(result.split(",.,")[1]);
String strval = result.split(",.,")[2];
}
public static String getMultipleValues(){
int intval = 231;//some int value
double doubleval = 3.14;//some double val
String strval = "hello";//some String val
return(intval+",.,"+doubleval+",.,"+strval);
}
}
このアプローチは、関数の戻り値のみのクラス数を増やしたくない場合のショートカットとして使用できます。
どのアプローチを取るかは状況によって異なります。