这将允许invoke方法具有正确的返回类型。例如:
class Method<T> {
T invoke(Object obj, Object... args);
}
答案 0 :(得分:2)
在Java中,泛型仅在编译时可用。您无法在运行时确定通用类型。这允许泛型实现向后兼容旧版本的JVM。
由于泛型仅在编译时可用,如果您知道类的类型,则不需要使用反射。
答案 1 :(得分:1)
在擦除的返回类型上使Method
通用是不合理的。然而,这将是很多努力而收益甚微。反射的本质是你在编译时不知道类型 - 否则你可以静态链接。
我想在某些情况下甚至可以添加新的API以便返回泛型类型。该信息仍在该方法上,但不是来自您传递给它的实例。