【问题标题】:Declaring a new object and calling some of its methods on creation [duplicate]声明一个新对象并在创建时调用它的一些方法[重复]
【发布时间】:2013-05-11 08:45:33
【问题描述】:

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

(声明时方法的调用)

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

【问题讨论】:

  • setLocation(220, 10); setSize(50, 50); 丢掉你找到的任何东西。这是垃圾代码。

标签: java declaration


【解决方案1】:

您正在派生 JPanel 的匿名子类,然后为它声明一个 initialiser 块

这是子类:

new JPanel(){};

注意大括号。并在其中声明了初始化程序:

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

子类的派生只是为了允许初始化块。这称为双括号初始化,有些人担心滥用创建匿名类只是为了这个目的。

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

【讨论】:

    猜你喜欢
    • 2012-12-28
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多