gpt4 book ai didi

java - 如何处理动态变量号。 java中的参数?

转载 作者:行者123 更新时间:2023-12-02 09:29:32 28 4
gpt4 key购买 nike

从google api获取路线方向的请求如下。

DirectionsApi.newRequest(getGeoContext())
.mode(TravelMode.DRIVING)
.origin(origin)
.destination(destination)
.waypoints(getWaypointsString(waypoints))
.departureTime(now)
.optimizeWaypoints(true)
.await();

.waypoints 是一个参数数量可变的方法:

public DirectionsApiRequest waypoints(java.lang.String... waypoints)

现在我的问题是我必须动态更新我的路线,因此我的 route 的航点数量可能会有所不同。我可以手动处理这个问题,例如:

.waypoints(Latlng1)
.waypoints("Latlng1","Latlng2")

无论如何,我可以为此编写一个通用方法,或者如果我不知道我会得到多少个航路点,如何处理它?<​​/p>

最佳答案

... 表示法只是传递数组的一种隐藏方式。所以实际上在waypoints方法中你有一个参数java.lang.String[] waypoints,它是一个数组。所以,你可以找出它的长度并一一读取它的元素:

public DirectionsApiRequest waypoints(java.lang.String... waypoints) {
int numOfWayPoints = waypoints.length;
for (int i = 0 ; i < numOfWayPoints ; i++) {
doSomethingWithTheWayPoint(waypoints[i]);
}
// or
for (java.lang.String waypoint : waypoints) {
doSomethingWithTheWayPoint(waypoint);
}
}

要调用这样的方法,您可以反向执行:只需传递一个数组作为最后一个参数:

   java.lang.String[] waypoints = {"Ltlng1", "Ltlng2"}; // fill the array
....
.waypoints(waypoints); // call the method, passing the array instead of a list of parameters

// or
ArrayList<java.lang.String> waypointsList = new ArrayList<>();
waypointsList.add("Ltlng1");
waypointsList.add("Ltlng2");
// etc
....
.waypoints(waypointsList.toArray(new java.lang.String[])); // call the method, passing the array of strings obtained from a list

关于java - 如何处理动态变量号。 java中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097324/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com