1

ハッシュテーブルをコピーしてからいくつかの値を追加しようとすると問題が発生します。2 つの異なるハッシュテーブルがあります (デバッグ用)。私が宣言し、それを別のハッシュテーブルと等しく設定する最初のハッシュテーブル。

Hashtable model1 = model;

2 番目のハッシュテーブルは、すべての要素とキーを新しいハッシュテーブルにコピーする元のハッシュテーブルで宣言および初期化されます。

Hashtable model2 = new Hashtable(model);

ただし、モデル 2 から要素を取得しようとすると、常に NullPointerException がスローされます。ただし、最初のインスタンス (model1) は何もスローしません (ただし、モデル インスタンスへの参照が追加されるため、必要な結果は得られません)。ヘルプやアドバイスをいただければ幸いです!! :)

4

1 に答える 1

1
boolean result = (Boolean)model.get(this.uniqueSymbol);

取得している値が null の場合、nullBooleanオブジェクトを取得していますが、JVM はそれをプリミティブに自動アンボックスしようとしていますが、値が null であるため、null ポインター例外が発生します。取得しようとしている値が実際に null でないことを確認する必要があります。自動ボックス化解除動作なしで試してみて、何が起こるかを確認してください。

Boolean result = (Boolean)model.get(this.uniqueSymbol);

Hashtableの JavaDoc から: 指定されたキーがマップされている値を返します。このマップにキーのマッピングが含まれていない場合はnullを返します。

于 2012-07-09T03:48:58.930 に答える