有没有办法了解从泛型类调用的方法将返回什么类型?
有一个例子:
Generified generified = new Generified();
Method method = generified.getClass().getMethod("getDoubleValue");
Class> returnType = ........
好的,有课:
public class Generified {
private T tValue;
private Z doubleValue;
private List tValueList;
public Generified() {
}
public T gettValue() {
return tValue;
}
public void settValue(T tValue) {
this.tValue = tValue;
}
public Z getDoubleValue() {
return doubleValue;
}
public void setDoubleValue(Z doubleValue) {
this.doubleValue = doubleValue;
}
public List gettValueList() {
return tValueList;
}
public void settValueList(List tValueList) {
this.tValueList = tValueList;
}
}
更新:
这就是我要求的原因:
我正在尝试使用lib,它可以对集合进行简单的聚合.我现在有:github.README.md
但是我对generified类的方法返回类型有很多问题.
我需要知道实际的返回类型,用CGLIB包装它,并为此返回类的所有方法添加拦截器,以便在将来知道调用层次结构.
但经过大量的调试后,我发现现在有办法做我想做的事,我想哭:)
解决方法:
从方法名称可以明显看出答案 – getDoubleValue()应该返回Double.但由于你没有提供该类的代码,我们只能猜测.
更新:
如果您在this page上检查MethodSpy并针对您的课程运行它,您将获得:
public Z Generified.getDoubleValue()
ReturnType: class java.lang.Object
GenericReturnType: Z
我认为只要查看泛型类就不能找到你想要的东西,它只是不包含你需要的信息.希望这可以帮助.
标签:java,reflection,generics
来源: https://codeday.me/bug/20190625/1284858.html