为了通过反射调用对象上的方法,我知道如何做到这一点的唯一方法是:
Object o = ...;
Method m = o.getClass().getMethod("methodName",null);
Object x = m.invoke(o,null);
为什么 Java 在 Object 类中没有 getMethods 方法?(以及 getSuperClass、getFields 等)。
所以我们可以这样做:
Object x = o.invoke("methodName",null);
为什么不?我认为这是出于性能原因。
(也作为旁注。在英语中,说“主体调用对象”更有意义,所以在编程术语中,对象调用方法。但是使用 Java,我们得到“对象调用方法”。很高兴我能混淆你今天。)