new Runnable() {} 可以這樣用嗎?

匿名內部類(Anonymous Inner Class),在創建實例的同時給出類的定義,所有這些在一個表達式中完成。
Java code
?
1
2
3
4
Runnable rn = new Runnable() {
    public void run() {
    }
};

相當於:
Java code
?
1
2
3
4
5
class Anomymous implements Runnable {
    public void run() {
    }
}
Runnable rn = new Anomymous();

可以看到前者更簡潔。(注意前者最後的分號不能省略,編譯器把整個看作一條語句)
不過,匿名內部類僅限於只實例化一次的內部類,如果內部類需要多次實例化,通常用後者。
另外,匿名內部類要麼繼承一個父類,要麼實現一個接口,不能兩者兼有,實現接口時也不能實現多個接口。關於該問題可以參考這貼:
http://topic.csdn.net/u/20071022/21/4f3097b7-e721-4313-8dc1-c11db3952eb5.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章