无法从int[]转换为双错误java

无法从int[]转换为双错误java,java,Java,我试图理解有关stackoverflow的相关问题,但没有办法。我是java新手 有这样的问题: Type mismatch: cannot convert from int[] to double 第一条错误行表示: return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD))); E=F1(A, B, C, D, MA, MD); 第二条错误行表示: return sumVect(sumVect3(A,B,C),m

我试图理解有关stackoverflow的相关问题,但没有办法。我是java新手

有这样的问题:

Type mismatch: cannot convert from int[] to double
第一条错误行表示:

return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
E=F1(A, B, C, D, MA, MD);
第二条错误行表示:

return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
E=F1(A, B, C, D, MA, MD);
和我的
T1.java
文件

public class T1 extends Data implements Runnable{
    protected T1(int N, int value) {
        super(N, value);
    }   
    public void run() {
        int[][] MA, MD;
        int[] A, B, C, D;
        double E;

        A = inputVector();
        B = inputVector();
        C = inputVector();
        D = inputVector();
        MA = inputMatrix();
        MD = inputMatrix();

        // Calculation F1

        System.out.println("Calculator F1:....");
        try {
            E=F1(A, B, C, D, MA, MD);
            System.out.println("F1:");
            System.out.println("F1: " + E);
        } catch (Exception f1) {
            // TODO: handle exception
            f1.printStackTrace(); 

            }
}

    private double F1(int[] A, int[] B, int[] C, int[] D, int[][] MA, int[][] MD ) 
    {
        return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
    }
data.jav
文件,可能会有帮助,所以粘贴在这里

protected static int[][] multMatrix(int[][] MA, int[][] MB){
        int[][] MT = new int[MA.length][MA.length];
        for (int i = 0; i < MA.length; i++) {
            for (int j = 0; j < MA.length; j++) {
                int s = 0;
                for (int k = 0; k < MA.length; k++) {
                    s += MA[i][k] * MB[k][j];
                    MT[i][j] = s;
                }
            }
        }
        return MT;
    }

    protected static int multVect(int[] A, int[] B){

        int v=0;
        for(int i =0;i<A.length;i++){
            v+=A[i]*B[i];

        }
        return v;
    }

    protected static int[] sumVect(int[] A, int[] B){
        int[] Z = new int [A.length];       
        for(int i =0;i<A.length;i++){
            Z[i]=A[i]+B[i];     
        }
        return Z;
    }

    protected static int[] sumVect3(int[] A, int[] B,  int[] C){
        int[] Z = new int [A.length];       
        for(int i =0;i<A.length;i++){
            Z[i]=A[i]+B[i]+C[i];        
        }
        return Z;
    }

protected static int[] multVectMatrix(int[] A, int[][] MA){
        int[] V = new int[A.length];
        for (int i = 0; i < A.length; i++) {
            int s = 0;
            for (int j = 0; j < A.length; j++) {
                s +=  A[j]*MA[i][j];
            }
            V[i] = s;
        }
        return V;
    }
受保护的静态int[]mult矩阵(int[]MA,int[]MB){
int[][]MT=新的int[MA.length][MA.length];
对于(int i=0;i对于(int i=0;i您的
sumVect
方法返回一个
int
int[]
)数组,但您正试图在
F1
方法中返回它,该方法应返回一个
双精度
。您应该弄清楚每个方法应返回什么,并使代码保持一致

private double F1(int[] A, int[] B, int[] C, int[] D, int[][] MA, int[][] MD ) 
{
    // here you are returning an int[] when you should return a double
    return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
}

sumVect函数返回一个int[]表

函数返回一个double


你可能有输入错误

你能发布你的stacktrace吗?你为什么要给double分配一个向量?