我想编写一个自定义映射器,可以将jooq记录转换为映射,但是有一些问题,这是我的代码。
public class BaseMapper<R extends Record, E extends Map> implements RecordMapper<R, E> {
@Override
public E map(R record) {
if (record == null) {
return null;
}
Arrays.stream(record.fields())
.collect(Collectors.toMap(
Field :: getName,
field -> record.get(field),
E :: new
));
}
当我实现RecordMapper的map方法时,我不知道如何返回E类型实例,因为您无法实例化泛型类型。
答案 0 :(得分:0)
jOOQ有一个开箱即用的Record.intoMap()
方法,它似乎完全可以满足您的需求,因此只需编写以下代码即可:
public class BaseMapper<R extends Record> implements RecordMapper<R, Map<String, Obhect>> {
@Override
public Map<String, Object> map(R record) {
return record == null ? null : record.intoMap();
}
}