我正在努力创建开源 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 class for resolving generic types against type variables.
Mainly intended for usage within the framework, resolving method parameter types even when they are declared generically
但我无法理解:UserAgentAnnotationMapper 是一个通用接口(interface),在什么意义上解析针对类型变量的通用类型?
正如我所看到的,代码返回了一个类数组,我不明白它们如何与接口(interface)相关。
最佳答案
该方法解析如何在变量mapper
的类型中指定类型变量T
。
例如如果mapper
是类型
class IntegerMapper implements UserAgentAnnotationMapper<Integer> {
// ..
}
它将返回一个包含Integer.class
的数组
关于java - 什么是 GenericTypeResolver 及其工作原理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005875/