Я использовал очень простой подход для решения проблем множественных возвратов. Он служит цели и избегает сложности.
Я называю это строковым разделителем Подход
И это эффективно, поскольку он может даже возвращать значения Несколько типов Например. int, double, char, string и т. д.
В этом подходе мы используем строку, которая очень маловероятна в общем случае.
Мы называем это разделителем.
Этот разделитель будет использоваться для разделения различных значений при использовании в функции
Например, мы получим наш окончательный возврат как (например) разделитель intValue разделитель doubleValue ...
И затем, используя эту строку, мы получим всю необходимую информацию, которая также может быть разных типов
Следующий код покажет работу этой концепции
В качестве разделителя используется ! @ # и
3 значения возвращаются intVal, doubleVal и stringVal
public class TestMultipleReturns {
public static String multipleVals() {
String result = "";
String separator = "!@#";
int intVal = 5;
// Code to process intVal
double doubleVal = 3.14;
// Code to process doubleVal
String stringVal = "hello";
// Code to process Int intVal
result = intVal + separator + doubleVal + separator + stringVal + separator;
return (result);
}
public static void main(String[] args) {
String res = multipleVals();
int intVal = Integer.parseInt(res.split("!@#")[0]);
// Code to process intVal
double doubleVal = Double.parseDouble(res.split("!@#")[1]);
// Code to process doubleVal
String stringVal = res.split("!@#")[2];
System.out.println(intVal+"\n"+doubleVal+"\n"+stringVal);
}
}
OUTPUT
5
3.14
hello
BUILD SUCCESSFUL (total time: 2 seconds)