4
回答
Java Method类的invok方法问题

若有一个方法有一个参数,但调用的时候希望传入null,invok方法调用时直接传null就成调用无参数的方法了,如何用invok方法调用?


<无标签>
举报
_BBQ_
发帖于5年前 4回/493阅
共有4个答案 最后回答: 5年前

假设 你的参数 类型是String(如果 是其他类型,则请自行修改)

则调用 时:method.invoke(obj, (String)null);

或:

method.invoke(obj, new Object[]{null});

引用来自“yangzhiyong”的答案

假设 你的参数 类型是String(如果 是其他类型,则请自行修改)

则调用 时:method.invoke(obj, (String)null);

或:

method.invoke(obj, new Object[]{null});

谢谢,为什么是这样呢,null还有类型吗?
--- 共有 2 条评论 ---
dreamers想更加认识一下的话,建议看看《java解惑》或《java编程思想》或其他一些Java中经典的书。做过java web的话,更加建议看看《深入分析Java Web技术内幕》。都是经典 中的经典呀。 5年前 回复
dreamers这个问题嘛,是因为Java里的重载解析过程是以两阶段运行的。第一阶段 选取所有可获得并且可应用的方法或构造器。第二阶段在第一阶段选取的方法或构造器中选取「最精确」的一个。你指定一个确定类型的null,就会调用方法中参数指定类型的方法 。比如:(String)null,java就会调用 参数是String的方法 ,而不会调用参数为Object或其他的方法了。 5年前 回复
顶部