首页 > 解决方案 > 我可以使用 Scala 访问 Companion Class 中的 Companion Object 属性吗

问题描述

我有以下非常简单的代码...

import org.apache.logging.log4j.{LogManager, Logger}

class TestSingle {
  def doSomething(): Unit = logger.debug("My Log Statement")
}
object TestSingle {
  private val logger: Logger = LogManager.getLogger(classOf[TestSingle])
}

但它不会让我从同伴类访问记录器。我是否需要将记录器移动到班级并添加 final 关键字,或者我是否还缺少其他关于如何执行此操作的内容?

标签: scala

解决方案


是的你可以。在使用名称时限定名称:

def doSomething(): Unit = TestSingle.logger.debug("My Log Statement")

或从伴随对象导入所有内容以引入logger范围:

class TestSingle {
  import TestSingle._

  def doSomething(): Unit = logger.debug("My Log Statement")
}

推荐阅读