python 的型別自動轉換及可以傳入動態參數,可以動態傳回多個變數, 相較於 java 的世界是滿方便的. 如何在 java 裡傳回2個以上的變數內容?
Arrays
double[] getCoordinatesDoubleArray() {
double[] coordinates = new double[2];
coordinates[0] = 10;
coordinates[1] = 12.5;
return coordinates;
}
問題是, 這個要相同型別.
List
List<Number> getCoordinatesList() {
List<Number> coordinates = new ArrayList<>();
coordinates.add(10); // Integer
coordinates.add(12.5); // Double
return coordinates;
}
好處是, 可以有微微型別不同, 如果用 Number…
sample 2:
public static List<Object> getDetails()
{
String name = "Geek";
int age = 35;
char gender = 'M';
return Arrays.asList(name, age, gender);
}
// Driver code
public static void main(String[] args)
{
List<Object> person = getDetails();
System.out.println(person);
}
Map
Map<String, Number> getCoordinatesMap() {
Map<String, Number> coordinates = new HashMap<>();
coordinates.put("longitude", 10);
coordinates.put("latitude", 12.5);
return coordinates;
}
用 Map 和用 JsonObject 來傳差不多.
還有一些其他解法, 但對我來說, 都太難理解, 例如:Tuples, 一點也不會想去使用那些方法.
Pair
Using Pair (If there are only two returned values)
import javafx.util.Pair;
public static Pair<Integer, String> getTwo()
{
return new Pair<Integer, String>(10, "GeeksforGeeks");
}
// Return multiple values from a method in Java 8
public static void main(String[] args)
{
Pair<Integer, String> p = getTwo();
System.out.println(p.left + " " + p.right);
}