我正在努力创建开放源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是一个通用接口,从什么意义上来说,它可以根据类型变量来解析通用类型?
如我所见,代码返回了一个我不明白它们与接口如何关联的类数组。
答案 0 :(得分:2)
该方法解决了如何在变量T
的类型中指定类型变量mapper
。
例如如果mapper
是类型
class IntegerMapper implements UserAgentAnnotationMapper<Integer> {
// ..
}
它将返回包含Integer.class