У меня есть следующий фрагмент кода:java hashmap значения ушли после перефразирования?
private static HashMap<String, TestObject> labelHash= new HashMap<String, TestObject>();
private static HashMap<String, TestObject> valueHash= new HashMap<String, TestObject>();
private HashMap getChildrenInHash(int opt){
// HashMap labelHash= new HashMap();
// HashMap valueHash= new HashMap();
if (valueHash.isEmpty() && labelHash.isEmpty()) {
if(getLabel().isShowing()){
TestObject[] tempArray = getLabel().getMappableParent().getMappableChildren();
for(int i =1; i < tempArray.length-2;i++){
if(tempArray[i]==null)
break;
if(tempArray[i].getProperty("text").toString().compareTo(" ")==0){
i+=1;
}
labelHash.put((String)tempArray[i].getProperty("text"),(tempArray[i]));
valueHash.put((String)tempArray[i].getProperty("text"),(tempArray[i+1]));
i+=2;
}
//System.out.println("finished filling the hashes");
}
}
}
if(opt ==1)
return labelHash;
else
return valueHash;
}
Я использую этот метод в основном населяют первоначально HashMaps то в конечном итоге получить значения из него позже, но проблема в том, что значения то, что я вижу, получить заселены делает больше не существует для поиска (не для всех, но для некоторых)? так, что происходит ? как они теряются, я проверял с помощью отладчика и видел значения один за другим при вставке, но когда извлечения больше не существует, какие-то мысли?
Как вы вызываете метод getChildrenInHash и как вы храните результат (HashMap), возвращенный методом? Можете ли вы добавить фрагмент кода, показывающий это? – sateesh
здесь метод, который вызывает, что getChieldrenInHash(): общественного WLabel getFlashCopyTargetCapacityLabel() { \t \t HashMap labelHash = getChildrenInHash (1); \t \t вернуть новый WLabel ((TestObject) labelHash.get («Целевая емкость FlashCopy»)); \t} по какой-то причине я не могу отформатировать стиль кода, не обвиняю меня в этом. – Tiberiu