gpt4 book ai didi

java - 类构造函数不区分 args... 和 args[][]

转载 作者:行者123 更新时间:2023-11-30 06:14:45 28 4
gpt4 key购买 nike

受学校线性代数 I 和 II 类(class)的启发,我目前正在用 Java 编写一个线性代数库。

我希望我的程序尽可能灵活,因此决定我的 Matrix类将有许多可用的构造函数。但是,当我尝试同时使用这两个构造函数时,Java 会抛出编译错误:

public Matrix(double[]... rows) { ... }

public Matrix(double[][] matrix) { ... }

我不明白为什么,因为第一个构造函数将接受任意数量的 double[]数组作为参数:Matrix matrix = new Matrix(r1, r2, r3... etc)第二个构造函数只会收到一个 double[][]参数:Matrix matrix = new Matrix(arr) 。我意识到在两个构造函数中我将处理相同的数据结构( double 的二维数组),但这里关于输入类型没有歧义,这就是为什么这对我来说很奇怪。

最佳答案

Type... 相当于 Type[](至少就方法参数声明和方法实现而言)。从这个意义上来说,Type[]... 相当于 Type[][],这解释了 double[]... 是如何工作的被视为double[][],即它被视为相同的签名。

关于java - 类构造函数不区分 args... 和 args[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49463732/

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