jav*_*dba 12 scala companion-object
我正在查看Akka相关的类型安全激活器代码,以下构造引起了我的兴趣:
伴随对象:
object MarkerActor {
sealed trait MarkerMessage
case object Stop extends MarkerMessage
..
def objectMethod = print("hi from companion object")
}
Run Code Online (Sandbox Code Playgroud)
Companion类:它导入伴随对象方法:
class MarkerActor extends Actor with ActorLogging {
import MarkerActor._ // Comment this line to compare w or w/o import available
objectMethod // just to see if 'visible' within companion class
override def receive = {
case Stop => {
Run Code Online (Sandbox Code Playgroud)
所以...这有点令人惊讶.为什么同伴类/对象之间没有"特殊关系",允许类自动"看到"对象方法?
更新 我对此有点怀疑,所以继续并注释掉"import MarkerActor._"这导致Companion类中出现"Symbol not found:Stop"错误.所以..导入确实是必需的.