我有由 HashMap 支持的 java 对象,因此没有可以通过反射发现的普通字段。例如:
public class City {
private final HashMap<String, String> internalMap = new HashMap<String, String>();
public String getId() {
return internalMap.get("id");
}
public void setId(String id) {
internalMap.put("id", id);
}
public String getName() {
return internalMap.get("name");
}
public void setName(String name) {
internalMap.put("name", name);
}
}
我想在 Room 中使用诸如此类的实体,而不必更改其结构,因为我有许多此类使用代码生成工具自动生成的类,并且有特定原因需要 HashMap 支持它们。HashMap 的每个值最终都应作为我的数据库表中的一列(键 String 是内部实现细节)。可能吗?由于注释处理器如何发现字段,目前似乎不是。
更新:
没有一个答案是我想要的。我打开了一个新问题而没有提及 HashMap,因为该细节不应该是相关的,但所有答案都锁定在它上面。请参阅如何将 Android Room 与外部库提供的 POJO 一起使用?对于更新的问题。