gpt4 book ai didi

java - Java中通过反射调用被调用方法的返回方法

转载 作者:行者123 更新时间:2023-12-01 08:16:08 24 4
gpt4 key购买 nike

好吧,我确实了解 Java Reflection 的工作原理。但我所做的与反射教程中显示的有点不同。现在我想要的是调用一个方法,该方法是通过使用反射调用方法返回的。

   class Foo{
private String str = "";

public Foo(String str){
str = this.str;
}

public void goo(){
System.out.println(this.str);
}
}

class Bar{
public Foo met(String str){
return new Foo(str);
}
}

class Hee{
public static void main(String [] args) throws Exception{
Class cls = Class.forName("Bar");
Object obj = cls.newInstance();

Class [] types = {String.class};
String [] arr = {"hello"};
Method method = cls.getMethod("met",types);

Object target = method.invoke(obj, arr);

target.goo(); //here where the error occurs
// 123456
}
}

现在,我很大程度上依赖于我的经验,我的 method.invoke() 将返回由所反射的方法返回的方法返回的对象。但似乎它不起作用..我调试了我的代码,似乎它没有返回任何内容。我做错了什么?请告诉我我是否做错了什么

最佳答案

可能需要将target对象转换为foo类型

((foo)target).goo();

关于java - Java中通过反射调用被调用方法的返回方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13227695/

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