[英]error: constructor in class <T> cannot be applied to given types; with matrix of generic variable in Java
在第一个文件中,我声明了矩阵 class 与相应的泛型变量和定义如下的构造函数:
public class Matrix<T>{
private T values[][];
void Matrix(T values[][]){
for (int i = 0; i < values.length; i++) {
for (int j = 0; j < values[0].length; j++) {
this.values[i][j] = values[i][j];
}
}
}
在带有主程序的第二个测试文件 class 中,我用字符串元素声明了通用变量矩阵。
public abstract class TestMatrix {
public static void main(String[] args){
//Declare matrix
String[][] array = {{"a","b"},{"c","d"}};
//Initialize matrix
Matrix<String> m = new Matrix<String>(array);
}
不过,我不太明白为什么会出现错误:
TestMatrix.java:6: error: constructor Matrix in class Matrix<T> cannot be applied to given types;
Matrix<String> m = new Matrix<String>(array);
如果我使用的是二维数组,程序有什么问题? 我研究了很多网站,但实际上很难找到此处和整个互联网中解释的完全相同的示例,因此我发现在这里发布这个问题非常适合聆听任何我将不胜感激的答案。
由于void,您的构造函数不是构造函数, 就像这里一样所以您只有没有arguments的不可见构造函数。
您不需要使用 for 循环复制 arrays,您可以使用内置的东西,例如Arrays.copyOf(array, newLength);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.