3

对于原始 java.util.Map,是否有类似这样的“对象哈希映射” ?

能够“映射”定制类(通常通过注释)以存储在原始映射中的基本思想:

Map<String,String> map = new HashMap<String,String>();
Class car = new Car(1, "Red"); 

Ohm ohm = new Ohm(map); // set the back-end map to use. 
Car result = ohm.put(car); // persist annotated class
result = ohm.get(1); // get by id
result = ohm.get("color", "Red"); // get by property query

我问这个的一个原因是因为我开发了一个库,可以有效地将原始接口映射GAE Datastore到原始Map接口:

Map<String, String> map = Datastorecast.getMap("somemap");

无论如何,我一直在考虑如何在不重新发明轮子的情况下实现它:

  • 使用 Google Gson 或 JSON.Simple 将 Object 序列化为 java.util.Map
  • 序列化的另一种选择是 XStream
  • 从那里将生成的地图复制到数据存储支持的地图容器

更新:

我实现了一种技术来实现这一点(Redis 风格):

Class car = new Car(1, "Red"); 

map.put("classname:com.mycompany.Car:uid:", car.getId());
map.put("classname:com.mycompany.Car:color:", car.getColor());
  • 所以它只是一个注释类的问题,以便 OHM 类可以反映要放入地图的值。
4

1 回答 1

0

trove4j TCustomHashMap怎么样?看来,它可能正是您正在寻找的。

于 2013-04-09T05:35:41.617 回答