2013-04-22 3 views
2

존재하지 않는 클래스의 "임시"개체 (런타임에)를 만들고 해당 개체의 필드를 만들 수 있는지 알고 싶습니다.기존 클래스가없는 개체 만들기

이 파일에 표시된 모든 데이터를 저장하고 나중에 작성하는 클래스를 수동으로 수백 개 만들 필요가있는 텍스트 파일을 구문 분석합니다.

파일처럼 보일 것이다 :

person,John,28,USA,Male 
person,Rebecca,25,USA,Female 

... 나중에 ...

address,John,... 
address,Rebecca,.. 

내가, 데이터의 새로운 종류를 metting하는 방법을하고 싶습니다 (여기 , Person 또는 Address), 내 src 코드에 존재하지 않는 클래스 (Person.class 또는 Address.class)의 해당 객체를 만듭니다.

그런 다음 줄을 나누고 (",") 각 문자열에 대해 새 Object를위한 새 Field를 만들고 그 안에 값을 넣습니다.

편집 :

내가 필요한 것 같다,하지만 난 JAXB/DOM 또는 기타 유사한 구현을 사용하여 출력 XML을 구축하기 위해 dexmaker 생성 된 클래스를 사용할 수있을 것이다 dexmaker 발견?

감사

+0

체크 아웃 cglib. 그러나 가장 큰 질문은 - 왜 그게 필요할까요? – rmalchow

+4

왜 그렇게하고 싶습니까? 왜 당신이 선행 읽기, 도메인 클래스를 만들고 파일에서 그들을 구성하려는 데이터를 모델로하지? – Akshay

+0

프로그램이 데이터가 새로운 클래스를 나타내는 것을 어떻게 알 수 있습니까? –

답변

2

당신은 속성 컨테이너 문자열 키와 값을 보유하고있는 클래스를 가질 수 있습니다. 이유가 확실하지 않은 이유는 무엇입니까?

SQL의 경우 라이브러리를 연결하고 올바르게 구성한 경우 자동으로 작업을 수행하는 ORM 프레임 워크가 있습니다.

+0

고마워요, 저것 좀 봐 줄 :) – Viria

5

유연한 개체로 HashMap<String, String>을 사용할 수 있습니다. 모든 키 (fieldname)는 필드 값을 나타냅니다. 모든 유형 (주소, 사람) 추가하고, 유형 HashMaps을의 TRAC을 유지하는 HashMap에 대한

, 물론이 효과 연관 배열에있는 자바 스크립트 객체처럼 조금 작동하는 HashMap<String, HashMap<String, String>> :

를 사용합니다.

0

왜 임시 개체가 필요합니까? 소스 코드에 어떤 클래스도 생성하고 싶지 않다면 Collections.Query를 사용하여 짧은 기간 동안 데이터를 유지하는 데 적합한 콜렉션을 사용할 수 있습니다.

미리 정의되어 있으므로 클래스를 만들 필요가 없습니다. HashMap, HashTable 등을 사용할 수 있습니다.

0

구문 분석 데이터를 저장하는 데 Collections 클래스 유틸리티를 사용할 수 있습니다. 나는 또한 파일을 파싱하는 중이다, 나는 항상 Map, List를 선호한다. Java는 시간을 낭비하지 않고 빠른 개발을 위해 이러한 기능을 제공합니다. 모든 새 데이터에 대해 객체를 만들고지도에서 다른 유형의 객체 만 저장하도록이 객체를 비교하십시오.