ТАК вот метод, который я вызываю из основного. первая часть просто умножает методы вместе. Это возвращение, которое получает ошибки и строку 121. Я выделил строки, которые получают ошибки. Я хочу умножить матрицу, которая была создана с умножением m и m2 на m, исходная матрица непрерывно. Что должно помешать этому продолжаться вечно, пока l oop остановится на 4. Я знаю, что это, вероятно, не лучший способ. вызов таков:
System.out.println(m.rec(m2));
m и m2 - клоны.
public Matrix rec(Matrix m2) throws Exception{
try{
int v = 0;
while(v < 4){
if(c!=m2.r){
System.out.println("Argh");
throw new RuntimeException();
}//if
**m3=new Matrix(r, m2.c); LINE 121!!! <------ **
for(int i=0; i<r; i++){
for(int j=0; j<m2.c; j++){
m3.data[i][j]=0;
for(int k=0; k<c; k++){
m3.data[i][j]+= ( ( data[i][k]) ) * (m2.data[k][j]);
}//k
}//j
}//i
v++;
** return m2.rec(m3); //LINE 131 <-------------**
}//while
}//try
catch(Exception ex){
System.out.println("Argh");
}//catch
return m2;
}//multiply
ЭТО ОШИБКА, она печатает строку 131 ошибки тысячи раз.
Exception in thread "main" java.lang.StackOverflowError
at markovchain.Matrix.rec(Matrix.java:121)
at markovchain.Matrix.rec(Matrix.java:131)
at markovchain.Matrix.rec(Matrix.java:131)