什么是GenericTypeResolver及其工作方式?

时间:2018-08-24 13:47:03

标签: java spring

我正在努力创建开放源Java项目的.NET移植。

由于我不是Java专家,所以有时会遇到一些我不理解的代码:

 private UserAgentAnnotationMapper<T> mapper = null;
 public void initialize(UserAgentAnnotationMapper<T> theMapper) {
        mapper = theMapper;

        Class[] classOfTArray = GenericTypeResolver.resolveTypeArguments(mapper.getClass(), UserAgentAnnotationMapper.class);

正如我在Spring文档中所读到的:

  

public abstract class GenericTypeResolver extends java.lang.Object
  

Helper类,用于根据类型变量解析泛型。

     

主要供框架内使用,解析方法   参数类型,即使它们是通用声明的

但是我不明白:UserAgentAnnotationMapper是一个通用接口,从什么意义上来说,它可以根据类型变量来解析通用类型?

如我所见,代码返回了一个我不明白它们与接口如何关联的类数组。

1 个答案:

答案 0 :(得分:2)

该方法解决了如何在变量T的类型中指定类型变量mapper

例如如果mapper是类型

class IntegerMapper implements UserAgentAnnotationMapper<Integer> {
 // ..
}

它将返回包含Integer.class

的数组