2

学校の演習として BCD クラスを作成していますが、いくつかの問題が発生しています。以下は私のBCDクラスです。

私の問題は、multiplyBCDs メソッドにあります。4,329 * 4 などの小さい数値では問題なく動作しますが、4,329 と 29,385 の積などの大きい積では、addBCDs メソッドの最初の行で NullPointerException エラーを受け取ります。

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

問題を遡ってみましたが、問題が見つかりませんでした。このエラーが表示される理由と修正方法を教えてください。

助けてくれてありがとう!

4

2 に答える 2

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

その行で NPE を取得できる唯一の方法は、otheris null の場合です。

于 2014-11-05T21:07:31.570 に答える
0

メソッドでは:

public BCD multiplyBy(int num)

最後の else ステートメントでは、次の条件が満たされることはありません。

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

そのため、「ans」は設定されず、null のままです。

于 2014-11-05T22:11:18.490 に答える