2013-07-23 3 views
-5
public void doMatrix(){ 
    double[][] arrayA = {{a11,a12,a13,a14},{a21,a22,a23,a24},{a31,a32,a33,a34},{a41,a42,a43,a44}};  
    double[][] arrayB = {{b1},{b2},{b3},{b4}}; 

    RealMatrix matrixA = MatrixUtils.createRealMatrix(arrayA); 
    RealMatrix matrixB = MatrixUtils.createRealMatrix(arrayB); 
    RealMatrix matrixInvA = new LUDecomposition(matrixA).getSolver().getInverse(); 
    RealMatrix matrixAmp = matrixInvA.multiply(matrixB); 
    tryit = arrayA[2][2]; 

    } 

tryit 값은 내 안드로이드 주요 활동의 텍스트 상자에 배치 될 때 null을 계속 반환합니다. 배열에 잘못 액세스하고 있습니까?배열 값은 항상 null을 반환합니다.

+0

'a33'이란 무엇입니까? –

+0

'a11, a12, etc ... '와 같은 로컬 변수들은 모두 무엇입니까? –

+1

아마도'a33'은'null'입니다. (모두 같아요.) – Maroun

답변

1

배열에 액세스하는 구문에는 문제가 없습니다. arrayA [2] [2]는 변수 a33의 값을 반환합니다. 아마도 변수 a33의 값이 null이기 때문에 널이됩니다.

+0

전에 실행 된 메소드에 저장됩니다. 좋습니다. 이전 코드를 다시 검사 할 때 코드를 다시 고칩니다. 감사합니다. –

5

나는 혼란스러워합니다.

double[][] 유형으로 선언 된 경우 arrayA[2][2]null이 될 수 없습니다.

arrayA[2][2]의 유형은 double이며 null은 해당 유형의 구성원이 아닙니다. 전례가 없습니다. null 값은 이고 참조 유형에는 만 유효하고 double은 참조 유형이 아닌 원시 유형입니다.

설명대로 프로그램이 아니거나 뭔가 다른은 텍스트 상자에 다른 값을 입력하게합니다.


가 (지금 arrayA 경우 Double[][] 선언했다, 그것은 다른 문제가 될 것입니다.)

+0

정확함. 기본 유형은 'null'일 수 없습니다. –

+0

동의. 'a33'가'null'이라면'arrayA'의 배열 초기화는'a33' – cyon

+0

@ cyon을 언 박싱 할 때'NullPointerException'을 던집니다.'double' 타입은 단순히'null' 값을 얻을 수 없습니다. –

3

모든 변수를 초기화하지 않는 코드가 잘 작동합니다. 값으로 초기화되지 않았으므로 null을 반환합니다.

관련 문제