在我的CS110課程中,我們正在開發一個使用Google Maps API的Android應用程序,以及Observer設計模式中教授的其中一個概念。設計模式教導了發佈者和訂閱者的概念。所以當發佈者的狀態發生變化時,它會通知所有訂閱者。在這個例子中,LocationListener是一個訂戶,但實現很混亂。該代碼如何能夠從接口實例化新對象?
的代碼片段如下所示:
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
// Called when a new location is found by the network location provider.
makeUseOfNewLocation(location);
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
LocationListener的是一個接口,而我的理解是,你不能實例化一個接口。然而,LocationListener locationListener...
聲明是從Interface
創建一個對象,這是如何實現的?
另外,我的理解是這是一個匿名類。我不太清楚我明白一個班級是匿名的意味着什麼。我明白匿名這個詞的含義,但不是在課堂上。
任何幫助澄清這裏發生的事情將不勝感激。
你正在實現使用匿名內部類的接口 – Raghunandan
看看[這個匿名類的問題](http://stackoverflow.com/questions/355167/how-are-anonymous-inner-classes-used-在-JAVA)。這對我幫助很大。 –