2011年5月7日 星期六

5-7. Anonymous class

Anonymous class 就是不具名的 class,通常用在我們不需要給一個很清楚的 class 名稱時。

在 Java 我們時常遇到 anonymous class,anonymous class 讓我們很方便產生一個暫時性的 class。
Java 產生 anonymous class 的語法,通常隨著 create 一個 anonymous class 的 instance 一起。
範例
Runnable r = new Runnable { //這裡表示產生一個 anonymous class,但implements Runnable interface
                            //大括號裡面就是該 anonymous class 的內容
                            //定義完 anonymous class,馬上 create 一個 instance 傳回去
      public void run() {
         ...
      }
    };
Thread thrd = new Thread(r).start();
  });
或許語法,你不會很熟悉,但這是很常見的寫法,請把它記住。

在 Scala 中,anonymous class 的用法更多,通常也是跟隨著要產生一個特定型態的 instance。
Scala 中的語法與 Java 的類似。
範例
val v = new { // new 後面不需要有 type 名稱,直接可以宣告 anonymous class 並 create instance
          def p = println("P")
        }

Anonymous class 一個很好用的工具,雖然導致出來的語法好像有點掉頭掉尾,但我們應該好好使用,可以讓你得成是寫起來更快速,更精簡。

沒有留言:

張貼留言