如何使用返回对类的引用的方法创建匿名类

时间:2019-06-24 21:20:19

标签: java anonymous-class

我想使用返回类实例的方法创建一个匿名类

class FirstClass {
    public FirstClass() {
        System.out.println("First class created");
    }
}

class SecondClass {
    public SecondClass() {
        System.out.println("Second class created");
    }
    public FirstClass getFirstClass() {
        return new FirstClass();
    }
}

public class Ex1 {
    public FirstClass getFirstClass() {
        return new FirstClass();
    }
    public static void main(String[] args) {
        //here is the problem
        Object obj = new SecondClass().getFirstClass() {
            {
                System.out.println("Anonymous class created");
            }
        };
    }
}

我希望程序可以通过创建匿名类来工作,但是它给了我一个语法错误。接受任何解决方案或解决方法。谢谢

1 个答案:

答案 0 :(得分:0)

您不能基于方法的返回值创建匿名类。只能在对象创建后创建匿名类,这意味着只能使用构造函数来创建匿名类。

最好的选择是直接创建FirstClass,然后覆盖初始化程序,如下所示:

new FirstClass() {
    {
        System.out.println("This is from inside anon!");
    }
};