나는 다음과 같은 코드 조각이 : 그게 내가 수행에 채워 보는 것을 값자바 해시 맵 값을 다시 해쉬 한 후에 사라 졌나요?
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 Target Capacity")); \t 코드 스타일을 사용하여 포맷 할 수없는 몇 가지 이유 때문에 저를 비난하지 마십시오. – Tiberiu