gpt4 book ai didi

java反射题

转载 作者:行者123 更新时间:2023-12-04 06:43:17 25 4
gpt4 key购买 nike

我正在尝试通过反射(reflection)解决以下问题。我有一个 POJO,它充当 TestResponse 类中方法签名的元数据。 TestResponse 有一个 setDate() 方法,它接受一个 Date 参数。我试图使它成为一个通用代码,它可以接受任何方法及其签名以在响应中设置。我无法弄清楚的是如何在根据输入调用 getMethod() 时设置参数 Class 。输入告诉我将参数设置为日期,但不确定如何实现。

这是我的示例代码。当然,mdi.modifier.getClass() 是错误的,因为它会得到 String.class 而不是 Date.class。

TestResponse response = new TestResponse();
Object val = "test";
MDIBase mdi = new MDIBase("setDate", "Date");
Method m = response.getClass().getMethod(mdi.method, mdi.modifier.getClass());
m.invoke(response, new Object[] { val });

这是 MDIBase
public class MDIBase {
public String method;
public String modifier;
public MDIBase(String method, String modifier){
this.method = method;
this.modifier = modifier;
}

任何指针将不胜感激。

谢谢

最佳答案

我不确定我是否完全理解您,但是如果我理解,您希望能够为参数传入一个类名吗?

为了做到这一点,不要传入“Date”,而是传入“java.util.Date”(这称为完全限定的类名),然后代替 getClass称呼

response.getClass().getMethod(mdi.method, Class.forName(mdi.modifier));

这将动态加载具有您提供的完全限定名称的类。

这就是你要找的吗?如果没有,请给我更多信息,我将再次尝试。

关于java反射题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991370/

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