首页 新闻 会员 周边 捐助

java 中 Method.invoke()问题

0
悬赏园豆:100 [已解决问题] 解决于 2015-11-26 10:43

当我获取某一个类中的所有方法时,然后遍历数组(Method[] methods),每一个方法的参数类型都不相同,想动态赋值
如:Method.invoke(XXX,100);

Method.invoke(XXX, "yyyy");

zz,的主页 zz, | 初学一级 | 园豆:112
提问于:2015-11-25 21:01
< >
分享
最佳答案
1
package cnblogs;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Type;

/**
 * Created by Kischn on 2015/11/25.
 */
public class ReflectTest {
    public static void main(String[] args) {
        Class<ReflectTest> t = ReflectTest.class;
        Method[] declaredMethods = t.getMethods();
            for(Method method : declaredMethods) {
                System.out.print(method.getReturnType());
                System.out.print(' ');
                System.out.println(method.getName());
                System.out.println("params:");
                Type[] genericParameterTypes = method.getGenericParameterTypes();
                for (Type type : genericParameterTypes) {
                    System.out.println(type.getTypeName());
                }
                System.out.println("---------------");
            }
    }

    public void sayHello(String name){
        System.out.print("hello" + name);
    }
}

void main
params:
java.lang.String[]
---------------
void sayHello
params:
java.lang.String
---------------
void wait
params:
---------------
void wait
params:
long
int
---------------
void wait
params:
long
---------------
boolean equals
params:
java.lang.Object
---------------
class java.lang.String toString
params:
---------------
int hashCode
params:
---------------
class java.lang.Class getClass
params:
---------------
void notify
params:
---------------
void notifyAll
params:
---------------

题主是要这样的吗?

收获园豆:100
之奇一昂 | 小虾三级 |园豆:1421 | 2015-11-25 22:08

 谢谢,要的就是这个样子,已经get了

zz, | 园豆:112 (初学一级) | 2015-11-26 10:42
其他回答(1)
0

然后呢?

Firen | 园豆:5385 (大侠五级) | 2015-11-25 21:08

就是想确定类中方法的入参类型

支持(0) 反对(0) zz, | 园豆:112 (初学一级) | 2015-11-25 21:21

@zz,: .NET中的反射是可以获取ParameterInfo的,然后就得知参数类型了。我想JAVA中也应该有类似的东西吧。

支持(0) 反对(0) Firen | 园豆:5385 (大侠五级) | 2015-11-25 21:28

@Firen: 谢谢您,问题解决了

支持(0) 反对(0) zz, | 园豆:112 (初学一级) | 2015-11-26 10:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册