java - 参数传递到方法中的顺序 (Java)

标签 java methods parameter-passing

是否定义了将参数传递到方法(在 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/

相关文章:

java - 多个映射到 Spring 中 Controller 的相同方法

java - 暂停所有线程而不等待

java - 配置 Hibernate 以使用重命名的 persistence.xml

java - 数组和方法的问题 (JAVA)

C# 和 MySQL - 返回 DataReader(或其内容)的方法

javascript - 使用 angular8 在循环中传递参数 onclick

java - 如何在没有下载的exe文件的情况下使用Maven IEDriver库

java - 从 Java 接口(interface)实现泛型方法

java - 了解 Java 在用作方法参数时如何处理对象

java - Java 是 "pass-by-reference"还是 "pass-by-value"?