声明一个新对象并在创建时调用它的一些方法

时间:2013-05-16 12:41:42

标签: java declaration

我在互联网上发生了这个声明,发现它非常有趣。 但是,我不知道要搜索什么来获取有关它的更多信息。 如果你能告诉我一些关于这个或者搜索什么......

(声明方法的调用)

 JPanel bluePanel = new JPanel(){{
        setBackground(Color.blue);
        setLocation(220, 10);
        setSize(50, 50);
 }};

1 个答案:

答案 0 :(得分:1)

您正在派生JPanel的匿名子类,然后为其声明初始化块

这是子类:

new JPanel(){};

注意大括号。并且在其中声明了initaliser:

new JPanel() {
 { 
    // static initaliser
 }
};

子类的派生只是允许初始化块。这称为双支撑初始化,有些人担心仅为此目的而滥用创建匿名类。

有关初始化程序块的详细信息,请参阅here