2013-02-26 71 views
4
// allows passing in arguments to the MyActor constructor 
ActorRef myActor = system.actorOf(new Props(new UntypedActorFactory() 
    {         // 
    public UntypedActor create() { // 
     return new MyActor("...");  // <- this part confuses me 
    }        // 
    }         // 
), "myactor"); 

我是Java新手,需要通過Akka文檔。我發現上面的代碼很混亂。特別是下面的代碼塊。如何將一段代碼發送到「新的UntypedActorFactory()」構造函數調用。什麼是這種類型的構造函數初始化調用。Java - 構造方法中的塊調用

{ 
public UntypedActor create() { 
return new MyActor("..."); 
} 

回答

4

讓您困惑的部分創建了一個匿名類,然後實例化它,並將新創建的實例作爲參數傳遞給方法。你指的是代碼塊是匿名類的主體是從UntypedActorFactory

例如衍生,如果你有一個接口:

interface SomeInterface { 
    void someMethod(); 
} 

您可以創建一個實現你的界面就像一個匿名類(類似語法適用於擴展命名類):

SomeInterface instance = new SomeInterface() { 
    public void someMethod() { // 
     // implementation here // <- similar to the example, 
    }        //  this is the body of anonymous class 
};        // 
0

這是一個匿名類。

這是一個簡單的新類,它使用聲明的方法從UntypedActorFactory繼承。