public static boolean addPassIfUnique(HashMap<String, EntryPass> entryPassHashMap,EntryPass entryPass) {
//fill in method
boolean isThere;
for (HashMap.Entry<String, EntryPass> entry : entryPassHashMap.entrySet()) {
if (entry.getValue().equals(entryPass)) {
isThere = true;
} else {
entryPassHashMap.put(entryPass.getName() entryPass.getId(), entryPass);
isThere = false;
}
}
return isThere;
}
Im expecting my if-else statements to update the variable "isThere"
but when I try returning "isThere"
it tells me it hasn't been initialized.
CodePudding user response:
Your isThere
variable ONLY gets initialized if the entryPassHashMap.entrySet()
contains items. If the entrySet()
is empty, then the for loop doesn't run, and thus isThere
remains uninitialized.
CodePudding user response:
The method as written, will have uninitialised isThere for empty map - your for loop will not do anything, and your boolean will remain uninitialised.
Think again on what you are doing here - I suggest rethinking and rewriting from scratch.