클래스의 필드에 동적으로 액세스하려는 경우 리플렉션 또는 Apache BeanUtils 클래스 (Java Bean을 Map for YOU로 변환 할 수 있음)를 사용하는 것은 관용적입니다.)는지도에서 객체를 단순히 인코딩합니다.
당신이 정말로 묻는 것처럼 들리네. 어떻게 동적으로 인코딩 된 데이터를 일반적으로 처리 할 수 있습니까? 이것은 java에서 일반적인 작업입니다. 우리는 일반적으로 변수에서 정확한 데이터 유형을 인코딩하지 않으므로 내성이 필요합니다. 인트로 스펙 션을 사용하면 코드 기반을 매우 쉽게 일반화 할 수 있습니다.
당신은 큰 객체가 맵에 간단한 이름/값 튜플을 설정 인코딩하려면
각 맵은 여러 분야와 객체를 인코딩 큰 "지도 목록"을 생성하는 솔루션입니다 유효한. 종종 데이터 모델을 프로토 타이핑하거나 데이터 모델을 만들기 전에 XML 또는 JSON 객체로 가득 찬 파일을 파싱하는 첫 번째 실행을 위해이 작업이 수행됩니다. ,
List<HashMap<String,Object>> my objects = new ArrayList<HashMap<String,Object>>();
HashMap<String,Object> h = new HashMap<String,Object)();
h.put("SSN",new Integer(2224441234));
h.put("username","jayunit100");
myObjects.add(h);
//Now, you can easily identify String vs integer values using introspection :
HashMap<String,Object> h = myObjects.get(0);
//You will need to iterate through the entries of the map as follows,
//And use intropection to process each type as you see fit.
for(Entry e : h.entries)
{
Object o = e.getValue();
if(o instanceof Integer)
System.out.println(e.getName() + " was an int! that was easy !");
else
System.out.println(e.getName() + " was another (non int) type : " + o.getClass().getName());
}
를 따라서 : 어떤 경우에, 당신은 오히려 올바른 유형으로 객체를 저장 확인한 후 쉽게 대신 형식 유추를 사용할 수 있습니다, 자신의 유형에 따라에 "이름"개체가 필요하지 않습니다 우리는 맵에서 임의의 속성의 유형을 반드시 어떤 식 으로든 인코딩하지 않고도 임의의 속성을 사용하여 대규모의 개체 컬렉션을 쉽게 만들 수 있습니다. 그런 다음 java의 인트로 스펙 션을 사용하여 런타임에 유형을 판별 할 수 있습니다. 당신이 변수 이름과 필드 형식 특정 코드 할 필요가 없도록, 동적으로 필드를 액세스 할 경우 큰 개체 colletions를 데이터베이스 쿼리를 구축하거나 디버깅 할 때
는
이것은 예를 들어, 일반적인 . 이러한 작업은 필드/값을 간단한 형식의 텍스트로 이름 값 쌍으로 나열해야하는 경우가 많습니다.이를 위해 맵 대신 객체로 유형을 저장하고 Apache BeanUtils 라이브러리를 사용하여 객체를 맵으로 변환하거나 BeanUtils.describe의 항목을 반복하여 모든 필드에서 작업을 수행 할 것을 제안합니다. myObject) 메서드를 호출합니다.
당신이 큰 작업
당신은 대규모 배열에 저장하고 최적화/데이터를 인코딩 할 수의 유형에 매우 빠르게 액세스합니다. 이것은 극도로 계산 집약적 인 I/O 또는 계산을 수행하지 않는 한 나쁜 생각입니다.
최종 참고 사항 : 내용을 분석/인쇄/출력 할 때 키/값 쌍이 동일한 순서로 나오도록 HashMaps 대신 TreeMaps를 사용하는 것이 좋습니다.
게시물을 수정하십시오. 제 의견으로는 당신이 무엇을하려고하는지 명확하지 않습니다. 특히 사용되는 데이터 유형 및 이유는 무엇입니까? – fuzzy
퍼지, 해시 맵은 모든 열의 형식이있는 테이블 행 구조를 나타냅니다. 그 값을 열 유형으로 저장하고 싶습니다. – simpleuser
내가 말했듯이, 귀하의 게시물을 편집하십시오. 여전히 (문법적으로) 올바르지 않으며 서식도 향상 될 수 있습니다. 몇 가지 추가 정보를 추가하거나 상황을 다르게 설명하십시오. – fuzzy