我有以下代码,在此方法中,我输入了一个双精度数字和3个对象数组列表:
public static ArrayList<ELPERouteStop> relatedness(double pososto,ArrayList<ELPERouteStop> all_stops, ArrayList<Distance> distances, ArrayList<ELPEVehicleLoaded> vl_list)
{
//do stuff
return destroyedCustomers;
}
我需要从同一类的另一个方法调用列表destroyCustomers。 另一类是:
public void destroySolution(ArrayList<ELPERouteStop> removedCustomers, SolutionCreated sc,ArrayList<shadowVehicle> all_svehicles)
{
//do stuff
}
作为输入我需要访问的对象列表。 有什么办法可以访问我? 在我的主要方法上,我执行了以下操作:
LNS lns = new LNS();
lns.destroySolution(LNS_Procedure.relatedness(0.15,all_route_stops, distances, vl_list), sc, all_svehicles);
这行得通吗? 提前非常感谢您!
答案 0 :(得分:4)
据我所知,这是方法a
调用方法b
的一般情况。由于Java(和大多数语言)从最里面的语句到最外面的语句进行求值,因此它肯定可以按您期望的那样工作:
a(b()); // Function composition, produces the result of applying a to the result of b
Java还按值传递引用,这意味着被调用方方法中的任何更改(重新分配除外)对调用方都是可见的。在这种情况下,如果b()
返回一个列表,并且a()
将一个元素添加到该列表中并返回它,则任何调用方法a
都会看到多余的元素。