相关疑难解决方法(0)

Java反射:获取具体类型的已实现通用接口

说我有一个像下面这样的课程

public class AtomEntryHandler implements ConsumingHandler<AtomEntry>
{
...
}
Run Code Online (Sandbox Code Playgroud)

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

我认为由于擦除不可能,但朋友说是的.

java generics reflection

5
推荐指数
2
解决办法
1万
查看次数

为什么要将Class <T>的类转换为不安全?

我正在创建一个MethodPointer类来模拟来自C++的函数指针的功能.起初,我只用Objects 做了一切,但后来我想到了 - 为什么不把它变成真正的通用?

问题来自于此构造函数,它试图使用签名调用另一个构造函数MethodPointer(Class<T> clazz, String methodName, Class<?> ... paramClasses):

public MethodPointer(T object, String methodName, Class<?> ... paramClasses) {
    this(object.getClass(), methodName, paramClasses);
    this.object = object;
}
Run Code Online (Sandbox Code Playgroud)

我认为这可以正常工作,但我收到以下编译器错误:

The constructor MethodPointer<T>(Class<capture#1-of ? extends Object>,
String, Class<?>[]) is undefined
Run Code Online (Sandbox Code Playgroud)

所以,困惑,我这样做了:

public MethodPointer(T object, String methodName, Class<?> ... paramClasses) {
    this((Class<T>) object.getClass(), methodName, paramClasses);
    this.object = object;
}
Run Code Online (Sandbox Code Playgroud)

它现在编译,但我收到以下警告:

Unchecked cast from Class<capture#1-of ? extends Object> to Class<T>
Run Code Online (Sandbox Code Playgroud)

我想问题是我不明白是什么Class<capture#1-of ? extends Object>意思.我认为,因为T从 …

java generics casting type-inference

5
推荐指数
2
解决办法
4739
查看次数

标签 统计

generics ×2

java ×2

casting ×1

reflection ×1

type-inference ×1