假设我有一个像下面这样的类
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/7844610/