我有一个单例对象,比如:
Object o = new Object () {
public void test() {
//...
}
};
但是我不能使用o.test()
,因为类/接口没有那个方法。有什么方法可以使用诸如getMethods
之类的元编程来实现这一点吗?请不要建议声明接口。
通过反射:
o.getClass().getMethod("test", null).invoke(o, null);
但这通常是一件非常丑陋的事情
或者。。。
Class cls = Class.forName(className);
Method method = cls.getMethod("test", new Class[0]);
Object o = method.invoke(null, new Object[0]);