2016-02-28 90 views
0

好了,所以我一直在寻找到使用的Smack库XMPP,和我看的文档时,我注意到一些奇怪的事情:我看到大括号,圆括号和分号相邻,为什么?

// Assume we've created an XMPPConnection name "connection"._ 
ChatManager chatmanager = ChatManager.getInstanceFor(connection); 
Chat newChat = chatmanager.createChat("[email protected]", new MessageListener() { 
    public void processMessage(Chat chat, Message message) { 
     System.out.println("Received message: " + message); 
    } 
}); 

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

});

出现。我从来没有见过这个,并想知道它是什么,什么时候使用它。

+1

这是一个匿名的内部类。看看它。 –

回答

2

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