gpt4 book ai didi

java - java中的反射与方法参数

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

我想用java做一个简单的反射

我想在方法中使用多个参数?

我的类(class)

package reflection;

import java.util.Date;

public class SimpleClass {

public Date datum1() {
Date d = new Date();
return d;
}

public Object datum2(String str) {
Date d = new Date();
return d;
}

}

我的测试

package reflection;

import java.lang.reflect.Method;

public class ReflectionTest {

public Object getMethodProperty(Object object, String... args) {

Object value = null;

try {
Method m = object.getClass().getMethod(args[0], new Class[] {});
value = m.invoke(object, new Object[] {});
} catch (Exception e) {}
return value;
}

public static void main(String[] args) {

Reflection r = new Reflection();
SimpleClass s = new SimpleClass();

System.out.println(r.getMethodProperty(s, "datum1", "test"));
System.out.println(r.getMethodProperty(s, "datum2", "test"));
}


}

第一个结果是实际日期

第二个结果为空

如何使用方法的参数?

谢谢艾克

最佳答案

datum2() 方法采用字符串。为了找到该方法,您应该在反射调用中添加该参数:

SimpleClass s = new SimpleClass();
Method m = s.getClass().getMethod("datum2", new Class[]{String.class});
m.invoke(s, new Object[]{"foo"});

关于java - java中的反射与方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815666/

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