int getInt(String col), getFloat, getString, getDate, etc.
과 같은 메소드를 사용하는 일종의 문서 객체 모델을 제공하고 클래스는 일반 공개 필드 또는 setName(String), setAge(int), etc.
과 같은 공용 설정자를 시들게합니다. 내 문서 레코드를 지정된 Java 유형에 매핑하려고합니다.오브젝트 모델을 클래스로 매핑하는 Java
다양한 대형 JSON, SQL 등의 라이브러리를 사용하여 런타임에서 MyRecordObject.class
이라고 말하면서 모든 종류의 스키마 파일을 사용하는 컴파일 타임 코드가 필요 없다는 것을 보았습니다.
하지만 어떻게 구현 되나요? Java는 DOM/레코드 구조를 표현하고 특정 Java 클래스에 매핑하기위한 일종의 저수준 인터페이스를 가지고 있습니까?
//to create something like this
Record record = readRecordFromMyGenericFileFormat();
TodoItem todo = record.as(TodoItem.class);
이러한 라이브러리 중 일부는 [소스] (https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/Gson.java)에서 볼 수 있습니다.). 그러나 그것은 아마도 성찰을 통해 이루어질 것입니다. 즉 json의 키 이름을보고 전달 된 클래스에서 해당 필드를 찾으십시오. –
DOM을 객체에 매핑하는 대신 DOM 소스를 객체, 아마도 XML을 객체에 매핑하는 것을 고려해보십시오. – DwB
불행하게도 소스를 제어하지는 않습니다. 레거시 (그리고 약 6 개 레이어의 변형, 네트워크 전송 등)가있는 일부 엔터프라이즈 라이브러리에서 제공합니다. 아마도 JSON/XML로 변환 한 다음 다시 매핑 할 수는 있지만 낭비 적이기 때문에 이전의 코드 검토를 수동으로 수행하는 것보다 훨씬 쉽습니다. todo.setDate (record.getDate ("date")), –