不知道参数类型的方法如何定义(运行时创建)

2018-03-13  本文已影响0人  godhong

使用运行时创建对象。,同样是运行show()方法,但是代码相差很多。

区别:


    pojo:

public class A{

    int a =1;

    public void show(){

        System.out.print(a);

    }

}


    运行前创建对象: 

public void printObject(A a){

    a.show();

}


    运行时创建对象:


public void printObject(Object a){

//获取该类的class对象

    class<?> clazz = a.getClass();

//通过class对象获取所有public方法,判断有没有show方法

    Method[] methods = clazz.getMethods();

    for(Method method : methods)

        if(method.getName.equals("show")){

        //调用show()方法

            method.invoke(a,null);    

            break;

        }

}    

上一篇下一篇

猜你喜欢

热点阅读