我有一个单身对象,如:
Object o = new Object () {
public void test() {
//...
}
};
但我不能使用o.test()
,因为类/接口没有该方法。有没有办法使用getMethods
之类的元编程实现这一目标?请不要建议声明界面。
答案 0 :(得分:5)
通过反思:
o.getClass().getMethod("test", null).invoke(o, null);
但这通常是一件非常难看的事情。
答案 1 :(得分:1)
...替代地
Class cls = Class.forName(className);
Method method = cls.getMethod("test", new Class[0]);
Object o = method.invoke(null, new Object[0]);