首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从java反射中的方法获取"genericInfo“

如何从java反射中的方法获取"genericInfo“
EN

Stack Overflow用户
提问于 2018-08-16 05:36:53
回答 1查看 360关注 0票数 1

我有课,DummyController,

代码语言:javascript
复制
@APSController
@RequestMapping("grand/old/dummy")
public class DummyContollerV2 {

    private final EntityResponseWrapper<Dummy> wrapper = EntityResponseWrapper.buildForEntity(Dummy.class);

    @RequestMapping(value = "", method = RequestMethod.POST)
    public HttpEntity<DendriteEnvelope<Dummy>> createNewDummy(
            @RequestBody final Dummy newDummy) {

        newDummy.setId("3");
        newDummy.setApproved(false);
        newDummy.setValue(ValuesEnum.VALUE_2);
        return wrapper.wrapEntityResult(() -> newDummy);
    }
}

我想要的是返回类型的树,以及"createNewDummy“方法的泛型。

通过调试,我发现我可以调用该方法:

代码语言:javascript
复制
    Class controllerClass = DummyContollerV2.class;
    List<Method> methods = Arrays.asList(controllerClass.getMethods());
    ClassTypeSignature returnSigniture = methods.get(0).getGenericInfo().getTree().getReturnType();

其中"returnSignature“让我遍历每个类及其泛型类型的"ClassTypeSignature”。然而,"getGernicInfo“方法是私有的,并且只能通过调试(或使用更多反射进行黑客攻击)来访问。

它显示返回类的泛型信息在运行时是保留的。有人知道我如何访问这些信息吗?

我知道这个问题可能是重复的,但我找不到一个完全解决这个问题的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 06:33:40

在这种情况下,您可以使用getGenericReturnType,因为泛型返回类型存在于类文件中:

代码语言:javascript
复制
Type t = methods.get(0).getGenericReturnType();

您可以使用类似以下内容来获取相关的类:

代码语言:javascript
复制
ParameterizedType genericHttpEntity = (ParameterizedType) t;

Class<?> httpEntity = (Class<?>) genericHttpEntity.getRawType();

ParameterizedType genericDendriteEnvelope =
    (ParameterizedType) genericHttpEntity.getActualTypeArguments()[0];

Class<?> dendriteEnvelope = (Class<?>) genericDendriteEnvelope.getRawType();

Class<?> dummy = (Class<?>) genericDendriteEnvelope.getActualTypeArguments()[0];

没有任何像树一样遍历java.lang.reflect.Type实例的API,但您可以编写一个。您需要处理JavaDoc作为其子类型列出的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51866801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档