为了账号安全,请及时绑定邮箱和手机立即绑定

java 中 Method.invoke()问题

java 中 Method.invoke()问题

潇潇雨雨 2018-12-06 16:36:04
当我获取某一个类中的所有方法时,然后遍历数组(Method[] methods),每一个方法的参数类型都不相同,想动态赋值如:Method.invoke(XXX,100); Method.invoke(XXX, "yyyy");
查看完整描述

5 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

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:
---------------

题主是要这样的吗?

查看完整回答
反对 回复 2018-12-16
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

然后呢?

查看完整回答
反对 回复 2018-12-16
?
临摹微笑

TA贡献1982条经验 获得超2个赞

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

查看完整回答
反对 回复 2018-12-16
?
倚天杖

TA贡献1828条经验 获得超3个赞

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

查看完整回答
反对 回复 2018-12-16
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

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

查看完整回答
反对 回复 2018-12-16
  • 5 回答
  • 0 关注
  • 686 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号