2016-01-20 68 views
1

我使用Akka框架与Java API,所以然后我试着了解框架的源代码 - 我不能,因为它是用Scala写的,很不幸我不知道这种语言。 那么,获得ActorRef指向自我的self()getSelf()方法有什么区别?获取Akka演员的自我参考差异

UPDATE:那么context()和getContext()怎么样?我注意到他们返回actor中不同类型的对象,从UntypedActor扩展。

回答

3

self()是惯用的scala API,getSelf()是惯用的Java API。它们返回相同的值,但getSelf()只能从UntypedActor的子类访问,UntypedActor是要从Java扩展到实现参与者的类。

+0

我想问题更新的答案与“...只能从UntypedActor的子类访问,这是从Java扩展到实现参与者的类。”? –

+1

这是实际的代码: ''' DEF的getContext():UntypedActorContext = context.asInstanceOf [UntypedActorContext] ''' 换言之,上下文是完全一样的实施的下面,它是加入一些Java便利接口。 –

+1

顺便说一下,在Akka中为相同的API使用Acala和Java版本是非常平常的。通常,javadoc中有标记表示JAVA API和SCALA API,但在较旧的代码中,这些代码在几个地方似乎缺失。 –

3

没有区别:它们指向相同的最终值。

+0

谢谢,希望我能找到时间学习Scala,以便我能够理解像Akka这样的库的源代码。 –