是否定义了将参数传递到方法(在 Java 中)的顺序?例如代码段中
Arrays.equals(ascendingSegment, Arrays.sort(ascendingSegment))
它用于检查数组是否确实按升序排列,我是否保证在调用排序方法之前传入原始数组?
编辑:
看来这其中有一点误会。 equals 方法在排序之前是否获取 ascendingSegment 的副本,或者在传递第一个参数之前首先调用排序?给定一个数组,例如 {1, 5, 2, 4}
,equals 方法会接收 {1, 5, 2, 4}
和 {1, 2, 4, 5}
作为参数还是 {1, 2, 4, 5}
的两个副本?
最佳答案
如果您使用调试器单步执行它并单步执行它,您将看到所有参数都被计算,然后该函数被调用。
我还想说,尝试执行您发布的操作是一种不好的做法。当测试一个对象时,您不应该对该对象执行任何会改变它的操作。在该方法调用之后,您将无法在测试之前显示列表的顺序。
编辑:
Arrays.sort()
不返回值,它就地排序。因此你不能这样使用它。您应该使用 Arrays.copyOf() 制作数组的副本,对副本进行排序,然后比较两个数组。
关于java - 参数传递到方法中的顺序 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756734/