好的,我試圖讓我的腦袋纏住Akka演員。 我看着從TestActorRef.scala下面的源代碼,並希望得到的細節保持:Akka演員系統TestActorRef - 試圖理解TestActorRef的含義[T <:Actor]
class TestActorRef[T <: Actor](
_system: ActorSystem,
_props: Props,
_supervisor: ActorRef,
name: String)
好了,這是一兩件事,我發現很容易和理解關於Scala的構造函數的概念。這是TestActorRef配備了4參數的構造函數和這些參數是:_SYSTEM:ActorSystem,_props:道具, _supervisor:ActorRef,名稱:字符串 (這是從API也很明顯)
我沒有得到的是'[T <:演員]「的部分
我的廣泛預感是,它與帶有簽名的通用Java類一樣,但要警告Scala是一種更深的語言,
所以,在Java中,我們有一個通用的類定義如下:
class name<t1, T2, ...Tn) { /** */}
其中T1,T2,T3是類型參數或類型變量。 我又回到了API找到這個類在Java中,這是相當於版本: ,我認爲該宣言是:
public class TestActorRef<T extends Actor>
所以,我們有:
<T extends Actor>
- 在Java中
和
[T <: Actor]
- 在斯卡拉。
Scala版本的含義是什麼?什麼是「<:」運營商或「關鍵字」。 與Java版本有什麼不同?
所有這些都將幫助我實現更好地處理TestActorRef和測試Akka Actor的目標。
這很好地回答了我的問題。謝謝 – user3825558 2015-03-06 23:49:01