可以将ActorRef用作Map键

时间:2013-12-20 14:46:44

标签: scala

我试图将ActorRef用作Map的键,但这似乎不是正确的选择

与演员通过上下文:

persistor = context.actorOf(persistenceProps)

键值似乎发生了变化。

是什么原因?

[case1-primary] Primary actor: Actor[akka://Step5PrimaryPersistenceSpec/user/case1-primary#533153706]
[case1-primary] Primary persi: **Actor[akka://Step5PrimaryPersistenceSpec/user/case1-primary/$a#728170290]**
[case1-primary] Primary sending persist message: Actor[akka://Step5PrimaryPersistenceSpec/user/case1-primary/$a#728170290] <- Persist(foo,Some(bar),0)
[case1-primary] Primary Retry message Persist(foo,Some(bar),0) -> Actor[akka://Step5PrimaryPersistenceSpec/user/case1-primary/$a#728170290]
[case1-primary] Persisted ack +1 **Actor[akka://Step5PrimaryPersistenceSpec/system/testActor3#-426557875]** 0

尝试使用ActorPath,同样的事情:似乎没有引用persistor而是在主要的Primary中新创建。不知道为什么

消息传递都没关系,它只是“关键”不同使得我的代码将它们视为不同的演员

1 个答案:

答案 0 :(得分:3)

查看抽象类ActorRef的源代码,表明它实现了hashCodeequals以及扩展java.lang.Comparable[ActorRef],因此它应该可以正常工作在散列和有序映射以及散列和有序集合中。