我试图将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中新创建。不知道为什么
消息传递都没关系,它只是“关键”不同使得我的代码将它们视为不同的演员
答案 0 :(得分:3)
查看抽象类ActorRef
的源代码,表明它实现了hashCode
和equals
以及扩展java.lang.Comparable[ActorRef]
,因此它应该可以正常工作在散列和有序映射以及散列和有序集合中。