如何调用单例方法?

时间:2015-11-20 17:58:52

标签: java reflection singleton

我有一个单身对象,如:

Object o = new Object () {
  public void test() {
    //...
  }
};

但我不能使用o.test(),因为类/接口没有该方法。有没有办法使用getMethods之类的元编程实现这一目标?请不要建议声明界面。

2 个答案:

答案 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]);