我看到花括号、括号和分号彼此相邻,为啥?

Posted

技术标签:

【中文标题】我看到花括号、括号和分号彼此相邻,为啥?【英文标题】:I see curly braces, parenthesis, and semicolons next to each other, why?我看到花括号、括号和分号彼此相邻,为什么? 【发布时间】:2016-02-28 02:53:34 【问题描述】:

好的,所以我一直在研究将 Smack 库用于 XMPP,当我发现一些奇怪的东西时,我正在查看文档:

// Assume we've created an XMPPConnection name "connection"._
ChatManager chatmanager = ChatManager.getInstanceFor(connection);
Chat newChat = chatmanager.createChat("jsmith@jivesoftware.com", new MessageListener() 
    public void processMessage(Chat chat, Message message) 
        System.out.println("Received message: " + message);
    
); 

困扰我的部分是最后一行,当

);

出现。我以前从未见过这个,想知道它是什么,什么时候使用。

【问题讨论】:

它是一个匿名内部类。查一下。 【参考方案1】:

通常当您在代码块末尾看到); 时,这意味着您正在创建一个匿名类或对象。您这样做是因为您将只引用该对象一次,因此将其存储在某个变量中是没有意义的,因为您不会再次使用它。如果您要创建一个要多次引用的对象,请将其存储在一个变量中。

【讨论】:

以上是关于我看到花括号、括号和分号彼此相邻,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

替换花括号中的逗号

为啥将 C 代码块用花括号括起来?

html中的大括号和百分号是啥意思?

为啥列表初始化(使用花括号)比其他方法更好?

for循环执行顺序中外面的花括号和表达式3哪个先执行

Java标识符和关键字整理