給定某種類型的文檔對象模型,其中包含類似int getInt(String col), getFloat, getString, getDate, etc.
的方法,以及類乾枯的純公共字段或公共設置程序(如setName(String), setAge(int), etc.
)我想將我的文檔記錄映射到指定的Java類型。Java將對象模型映射到類
我已經看到,在運行時只使用MyRecordObject.class
就可以完成各種大型JSON,SQL等庫的工作,沒有編譯時代碼使用任何類型的模式文件。
但是這是如何實現的? 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
不幸的是,我們不能控制源代碼,它由一些企業庫提供了大量的遺留代碼(以及大約六層轉換,網絡傳輸等)。我可以將它轉換爲JSON/XML,然後將其映射回去,但這看起來很浪費,而且我不可能在過去的代碼審查中獲得過去的代碼審查,即使是100年代的手動'todo.setDate(record.getDate(「date」))', –