2013-05-20 115 views
1

我有命名的問題下面的情況接口作爲方法的參數

{...} 

X.a; 
a.addListener(new ListenerForX(){ 
// some interface methods 
}); 

{...} 

這是一樣的:

{...} 
X.a; 
a.addListener(new XListener()); 
{...} 
private class XListener implements ListenerForX{ 
//some methods 
} 

怎麼叫?

回答

4

第一個代碼示例叫做anonymous inner class

這兩個示例在Java中都是有效的。該方法只對ListenerForX感興趣,並不關心其實現。

1

第一個是匿名的內部類。

假設你有一個接口WalkabledoWalk()

對於發生在你可以寫的東西像一個適合步行的實例的方法。

takeForaWalk(new Walkable() { 
void doWalk() { 
//Impl 
}} 
)