簡體   English   中英

如何使用返回類引用的方法創建匿名類

[英]How to create an anonymous class using a method that returns a reference to a 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");
            }
        };
    }
}

我希望程序通過創建匿名類來工作,但它給了我一個語法錯誤。 接受任何解決方案或變通方法。 謝謝

您不能基於方法的返回值創建匿名類。 匿名類只能在創建對象時創建,這意味着它只能使用構造函數創建。

最好的辦法是直接創建FirstClass ,並覆蓋初始化程序,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM