gpt4 book ai didi

Java泛型AnyType,如何允许调用任何方法?

转载 作者:行者123 更新时间:2023-11-30 01:53:27 26 4
gpt4 key购买 nike

给定:

public<?> void methodName(? input){
var something = ?.GetItNow();
}

我们有大量从 WSDL 自动生成的类。几乎所有的方法都具有相同的方法,但是没有办法让它们为这些相同的方法实现接口(interface)。假设所有这些不同的类都有一个名为 GetItNow() 的方法。我的问题是如何设置通用方法来允许上面的代码工作?

当使用“?”时我必须始终使用“extends”关键字吗?如果是这样,我如何扩展任何对象,这样我就不会看到“方法不存在”的编译错误。

请注意,上面的代码仅用于说明目的,尚未执行任何操作。

最佳答案

如果事先知道名称,您可以使用反射来访问该方法。

public void methodName(Object input){
try{
Method method = input.getClass().getMethod("GetItNow");
RETURN_TYPE returnValue = (RETURN_TYPE)method.invoke(input);
}catch(Exception e){
throw new RuntimeException("Error while invoking method",e);
}
}

关于Java泛型AnyType,如何允许调用任何方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55283339/

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