Самодельный класс BCD - ошибка умножения BCD

Я делаю урок BCD в качестве упражнения для школы и сталкиваюсь с некоторыми проблемами. Ниже мой класс BCD.

Моя проблема с методом multiply BCDs. Он работает хорошо с меньшими числами, такими как 4 329 * 4, однако, с более крупными продуктами, такими как 4,329 и 29,385, я получаю ошибку NullPointerException в первой строке моего метода addBCDs:

int[] added = new int[other.numberOfDigits()];

Я попытался отследить проблему и не смог найти проблему. Почему я получаю эту ошибку и как я могу это исправить?

Спасибо за помощь!

2 ответа

Решение

В методе:

public BCD multiplyBy(int num)

В последнем операторе else следующее условие никогда не выполняется:

if (x == digits.length - 1 && carry != 0)

и поэтому "ans" никогда не устанавливается и остается нулевым.

int[] added = new int[other.numberOfDigits()];

Единственный способ получить NPE на этой линии, если other нулевой.

Другие вопросы по тегам