gpt4 book ai didi

Java 反射 : Get concrete type of implemented generic interface

转载 作者:行者123 更新时间:2023-11-29 09:12:36 25 4
gpt4 key购买 nike

假设我有一个像下面这样的类

public class AtomEntryHandler implements ConsumingHandler<AtomEntry>
{
...
}

是否可以从 AtomEntryHandler.class 的类对象中获取类对象 AtomEntry.class ?

由于删除,我认为这是不可能的,但 friend 说是。

最佳答案

您可以获得接口(interface)和直接子类的通用类型,但仅限于具体实现。例如,如果您有一个 List<T>例如,由于类型删除,您无法知道它被参数化为什么。如果类定义包含编译时已知的参数化类型(例如 class StringList extends List<String>),那么您可以检索该信息。

ParameterizedType pt = (ParameterizedType)AtomEntryHandler.class.getGenericInterfaces()[0];
Class atomEntryClass = (Class)pt.getActualTypeArguments()[0];

关于Java 反射 : Get concrete type of implemented generic interface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11464934/

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