Java 中的类型不匹配错误,二维数组声明
Type mismatch error in Java, 2D array declaration
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new *double[theta[0].length][theta.length]();*
double[][] theta_grad=new *double[theta.length][theta[0].length]();*
-------
---
--
--}
我在声明二维双精度数组时遇到错误。
类型不匹配错误。无法将 double[][][] 转换为 double[][]
谁能告诉我我在哪里弄错了以及如何解决?
非常感谢!!!!
我修复了您 post 编写的代码,因此我可以尝试编译它。
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new double[theta[0].length][theta.length]();
double[][] theta_grad=new double[theta.length][theta[0].length]();
}
}
然后我编译了一下:
> javac -d . Test.java
Test.java:9: error: ';' expected
double[][] theta_tran=new double[theta[0].length][theta.length]();
^
Test.java:10: error: ';' expected
double[][] theta_grad=new double[theta.length][theta[0].length]();
^
2 errors
下次您提出问题时,您应该post准备好编译的最少量代码,并且可以证明您的问题。
您不应该以任何奇怪的方式修改您的代码来指出您的问题所在。我们不知道这些星号是否是您代码的实际部分。如果您必须添加某些内容,请使用评论。
并且您应该包含您收到的错误消息。错误消息非常清楚你做错了什么。
这个可以编译:
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
// No brackets needed for array instantiation
double[][] theta_tran=new double[theta[0].length][theta.length];
double[][] theta_grad=new double[theta.length][theta[0].length];
return null;
}
}
这根本不是您描述的错误。如果你真的有类型不匹配,它不在你 posted 的代码中的任何地方。
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new *double[theta[0].length][theta.length]();*
double[][] theta_grad=new *double[theta.length][theta[0].length]();*
-------
---
--
--}
我在声明二维双精度数组时遇到错误。 类型不匹配错误。无法将 double[][][] 转换为 double[][] 谁能告诉我我在哪里弄错了以及如何解决?
非常感谢!!!!
我修复了您 post 编写的代码,因此我可以尝试编译它。
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
double[][] theta_tran=new double[theta[0].length][theta.length]();
double[][] theta_grad=new double[theta.length][theta[0].length]();
}
}
然后我编译了一下:
> javac -d . Test.java
Test.java:9: error: ';' expected
double[][] theta_tran=new double[theta[0].length][theta.length]();
^
Test.java:10: error: ';' expected
double[][] theta_grad=new double[theta.length][theta[0].length]();
^
2 errors
下次您提出问题时,您应该post准备好编译的最少量代码,并且可以证明您的问题。
您不应该以任何奇怪的方式修改您的代码来指出您的问题所在。我们不知道这些星号是否是您代码的实际部分。如果您必须添加某些内容,请使用评论。
并且您应该包含您收到的错误消息。错误消息非常清楚你做错了什么。
这个可以编译:
import java.util.*;
public class Test {
public HashMap<String, double[][]> GradientDescent(double[][] ratingData_norm, double[][] ratingData_binary, double[][] theta, double[][] X, int iter, double alpha, double lambda)
{
HashMap<String, double[][]> result= new HashMap<String, double[][]>();
// No brackets needed for array instantiation
double[][] theta_tran=new double[theta[0].length][theta.length];
double[][] theta_grad=new double[theta.length][theta[0].length];
return null;
}
}
这根本不是您描述的错误。如果你真的有类型不匹配,它不在你 posted 的代码中的任何地方。