を更新しません、私はプライベートHashMapのフィールドを持っている(卵は列挙型で、ベーコンは、ArrayListのフィールドを持つオブジェクトです)。基本的にHashMapのフィールドは私のJavaプロジェクトで
class Foo {
private HashMap<Eggs, Bacon> breakfast;
foo() {
this.breakfast = new HashMap<Eggs, Bacon>();}
void setValues(int x) {
ArrayList<Integer> temp;
Bacon b;
for(int i = 0; i < x; i++) {
temp.add(i);}
b = new Bacon(temp);
this.breakfast.put(Eggs.Scrambled, b);}
}
、私は私のTestClassをして最初のsetValuesを呼び出すことを確認しても、呼び出しは常にNullPointerExceptionがになります()またはbreakfast.sizeを()breakfast.getする:だから、のようなものです。私の実際のコードでは、forループのオブジェクトマッピングにいくつかの列挙型があります。デバッガを使用して、値が設定されたが、各ループの最後に値がすぐに消えたことがわかりました。なぜ私のHashMapフィールドに値を保存していないのか分かりません。フィールドをArrayListに変更して値を設定した場合でも、同じnullpointer/outofbounds例外が発生します。
必要に応じて実際のコードを投稿できますが、これについての洞察があれば疑問に思っていました。私はウィットの終わりです。
あなたは)(setValues前のfoo()を呼び出しますか? – Jens
一時は決して初期化されません。 – Jens
'foo()'しようとしているのは、コンストラクタであればコンストラクタです。メソッドが 'setValues'の前に呼び出せばそれを大文字にします –