gpt4 book ai didi

java - 在没有泛型的情况下从 TypeElement 获取父类(super class)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:51 25 4
gpt4 key购买 nike

我有一个类:

public class StartPagePresenter extends AbstractPresenter<String> {
...
}

使用 Java Annotation Processing 我得到了类的 TypeElement:

TypeElement startPagePresenterType = // get the TypeElement of StartPagePresenter

现在我需要获取完成的父类(super class):

startPagePresenterType.getSuperclass();

然后我尝试检查父类(super class)是否具有正确的类型:

if ( !startPagePresenterType.getSuperclass().toString().equals(
AbstractPresenter.class.getCanonicalName()) ) {
...
}

这里是问题所在:AbstractPresenter.class.getCanonicalName() 导致:

core.mvp.AbstractPresenter

startPagePresenterType.getSuperclass().toString()导致:

core.mvp.AbstractPresenter<java.lang.String>

当您比较这些字符串时,尽管父类(super class)相同,但它们永远不会相等。

如何在没有通用 block 的情况下从 startPagePresenterType.getSuperclass() 获取父类(super class)?

最佳答案

我找到了答案:

TypeMirror superClassTypeMirror = startPagePresenterType.getSuperclass();
TypeElement superClassTypeElement =
(TypeElement)((DeclaredType)superClassTypeMirror).asElement();

就是这样! superClassTypeElement就是父类(super class)的TypeElement

关于java - 在没有泛型的情况下从 TypeElement 获取父类(super class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com