我想使用JOOq创建一个通用方法,从JSON对象中获取值并更新指定表(通过字符串指定)。 这个例子不包括表/字段验证。
public void updateTable(String table, JsonObject data) {
Table<?> table = PUBLIC.getTable(table);
UpdateSetFirstStep<?> update = DSL.using(fooConfig).update(table);
// Loop through JSON {field1: value1, field2: value2, ...}
for (Map.Entry<String, Object> entry : data) {
String fieldName = entry.getKey();
Field<?> field = table.field(fieldName);
Object value = entry.getValue();
// error: no suitable method found for set(Field<CAP#1>,CAP#2)
update.set(field, field.getType().cast(value));
}
}
但我遇到了编译时错误:no suitable method found for set(Field<CAP#1>,CAP#2)
。
我认为问题在于编译器不知道字段的类型和值的类型将是相同的(因此出现了CAP#1和CAP#2)。
有没有办法解决这个问题?