Я пишу небольшой код, который использует потоки для доступа к матрицам U, S и V из матрицы A, используя метод Jama и svd(), но мне приходится сталкиваться с такими трудностями, как Java Null pointer исключение. Мой код заключается в следующем:svd error java java null Указатель исключения
public class SVD implements Runnable
{
private Thread t;
public Matrix A;
public int option;
public Matrix result;
public SVD(Matrix A, int optiune)
{
this.A = A;
this.option = optiune;
}
@Override
public void run()
{
if (option == 1)
result = A.svd().getU();
if(option ==2)
result=A.svd().getS();
if(option ==3)
result=A.svd().getV();
}
public void start()
{
if (t == null)
{
t = new Thread(this);
t.start();
}
}
}
Теперь, когда я пытаюсь создать 3 SVD объекты, как это:
Matrix A = Matrix.random(20, 20);
SVD a1 = new SVD(A, 1);
SVD a2 = new SVD(A, 2);
SVD a3 = new SVD(A, 3);
a1.start();
a2.start();
a3.start();
Matrix U=a1.result;
Последняя строка является строкой, которая получает ошибку. Что может вызвать проблему? Это то, чего я пропустил?
PS: Извините за форматирование, я не знаю, почему это так!
'NullPointerException' вызывается при вызове метода на объекте' null'. Попробуйте 'System.out.println (a1);' перед вашей ошибочной строкой. – AMACB
Это печать [email protected], поэтому объект указывает на что-то! Я думаю, что есть что-то с результатом Matrix, но я не понимаю, что кажется проблемой. –
Хм, это странно. Вы уверены, что на эту строку выдается ошибка. – AMACB