有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不能调用匿名类方法

我可以想象一些非常有创意的Java代码:

Object thing = new Object() {
    public void speak() {
        System.out.println("Hi!");
    }
};
thing.speak();

甚至,为了获得完整的闭包效果,定义一个Function接口。。。你明白了吗

为什么这个代码不起作用


共 (1) 个答案

  1. # 1 楼答案

    不确定在本例中是否有用,但对原始声明使用某种类型的重写方法是有用的,因为它是重写的,所以可以调用这些方法。否则,在您的情况下,只需将反射用作:

    thing.getClass().getMethod("speak").invoke(thing);
    

    对于覆盖方法:

    Object thing = new Object() {
       public void toString() {
          System.out.println("Hi! Me inside your mind!");
          return "not today!";
       }
    };
    thing.toString();