不知道参数类型的方法如何定义(运行时创建)
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;
}
}