如果我想将一些 JSON 读入一个对象,并且我有接口,但必须使用 Spring 上下文来获取实现类,我需要使用 SimpleAbstractTypeResolver 将接口映射到实现。到目前为止,如果我提前知道哪些接口需要哪些实现,那就太好了。但是,如果该接口具有返回其他接口的方法(并且可能递归地向下行),并且我不一定提前知道,我想我可以使用反射来弄清楚。所以这就是我想出的,但编译器不喜欢该行resolver.addMapping(method.getReturnType(), method.getReturnType()); , 说它不适用于这些论点。我很确定这些类型适合该方法——对于如何实现这一点有什么想法吗?
for (Method method : clazz.getMethods()) {
if (method.getReturnType().isInterface() && method.getName().startsWith("get")) {
// getter method returns an interface so find its implementation class
Class beanClass = context.getBean(method.getReturnType()).getClass();
if (clazz.isAssignableFrom(beanClass)) {
resolver.addMapping(method.getReturnType(), method.getReturnType());
mapInterfaces(objectMapper, clazz, resolver);
}
}
}
一只萌萌小番薯
白板的微信
相关分类