有人可以解释为什么这段代码以这种方式工作吗?我想制作我自己的概念证明 Loggable trait。计划是实例化一个记录器实例,以便继承的类不必做这项工作。但正如我所见,这不是我想要的。
这是代码:
package hu.jonas.simple
trait Loggable {
val logger = java.util.logging.Logger.getLogger(this.getClass.getName)
def whoAmI = {
logger.info(this.getClass.getName)
}
}
class Service extends Loggable {
def answer = {
whoAmI
}
}
object Main extends App {
new Service().answer
}
Run Code Online (Sandbox Code Playgroud)
它产生了以下日志消息:
Jan 25, 2013 2:02:07 PM hu.jonas.simple.Loggable$class whoAmI
INFO: hu.jonas.simple.Service
Run Code Online (Sandbox Code Playgroud)
为什么这两个 this.getClass.getName 不同?此外,当我实例化记录器以获得这个时,我应该写什么:
Jan 25, 2013 2:02:07 PM hu.jonas.simple.Service whoAmI
INFO: hu.jonas.simple.Service
Run Code Online (Sandbox Code Playgroud) 我正在使用akka远程处理并创建了一个小型Scala应用程序,它将消息发送到其他Scala应用程序.没关系,接收器应用程序设法接收消息,但是我得到了奇怪的序列化警告(如下所示).我尝试按照akka.io远程处理的文档配置序列化,但没有设法找到摆脱这些警告的设置.
我虽然做错了什么并克隆了akka/akka github repo,但我还是运行了 akka-samples/akka-sample-remote-scala.我很惊讶他们有同样的错误.
[WARN] [03/29/2016 16:53:40.137] [LookupSystem-akka.remote.default-remote-dispatcher-8] [akka.serialization.Serialization(akka:// LookupSystem)]使用默认的Java序列化程序class [sample.remote.calculator.Subtract]由于性能影响而不推荐使用.使用另一个序列化程序或使用设置'akka.actor.warn-about-java-serializer-usage'禁用此警告
任何人都能指出正确的方向吗?谢谢.