使用java注解处理器,我有以下类型:
@NameToken(value={"startPage"})
public interface MyProxy extends Proxy<StartPagePresenter> {
}
以及:
public interface Proxy<T> { }
我有 TypeElement
的 Proxy
作为:
TypeElement pProxyTypeElement = // ...
现在我想得到type参数的typeelement <StartPagePresenter>
.
我试过:
List<? extends TypeParameterElement> proxyTypeParamElems =
proxyTypeElement.getTypeParameters();
TypeParameterElement firstParameter = proxyTypeParamElems.get(0);
当我打印时 firstParameter.getSimpleName()
我明白了 T
而不是 StartPagePresenter
.
我怎样才能得到真实的 TypeElement
从typeparameter开始startpagepresenter?
1条答案
按热度按时间798qvoo81#
要访问泛型参数,需要
TypeMirror
投出DeclaredType
.DeclaredType
有一个方法getTypeArguments()
返回一个TypeMirror
表示具体声明的泛型参数:以您为例:
应该打印
StartPagePresenter
我更喜欢使用api提供的各种访问者来平滑这个转换。