Scala 无结果类型测试:Option[akka.actor.ActorSystem]类型的值不能也是akka.actor.ActorSystem

Scala 无结果类型测试:Option[akka.actor.ActorSystem]类型的值不能也是akka.actor.ActorSystem,scala,warnings,static-analysis,Scala,Warnings,Static Analysis,我正在使用替罪羊进行静态代码分析,我收到了一条警告消息 fruitless type test: a value of type Option[akka.actor.ActorSystem] cannot also be a akka.actor.ActorSystem 这是我的密码 object ActorSystemSetting extends ActorSystemSettingTrait{ val config = ConfigFactory.load() val log =

我正在使用替罪羊进行静态代码分析,我收到了一条警告消息

fruitless type test: a value of type Option[akka.actor.ActorSystem] cannot also be a akka.actor.ActorSystem
这是我的密码

object ActorSystemSetting extends ActorSystemSettingTrait{
  val config = ConfigFactory.load()
  val log = LoggerFactory.getLogger(this.getClass)

  var actorSystem  :  Option[ActorSystem] = None
   def createActorSystem: Option[ActorSystem] = {
      actorSystem = Option(ActorSystem("ArteciateActorSystem", config))
      actorSystem
    }

  def getActorSystem  :  Option[ActorSystem] ={
    if (actorSystem == None){
      createActorSystem
    }
    else{
     log.debug("ActorSystem is not null")
    }
    actorSystem
  } 
}
在这一节中,我收到了警告信息 在线

case Some(system: ActorSystem) =>




   Option(ActorSystemSetting.getActorSystem) match {
          case Some(system: ActorSystem) =>
            system.actorOf(Props[PaymentViaCreditDeletionActor]
              , name = "PaymentViaCreditDeletionActor")
          case None => log.debug("ActorSystem is null")
        }
}

你需要改变这个

Option(ActorSystemSetting.getActorSystem) match {
为此:

ActorSystemSetting.getActorSystem match {
ActorSystemSetting.getActorSystem已经返回OptionActorSystem,因此您不需要将其包装在另一个选项中


它不起作用,因为您试图将Option[Option[ActorSystem]]类型的值与Somesystem:ActorSystem匹配,后者属于Option[ActorSystem]类型,因此它永远无法匹配。

您需要更改此设置

Option(ActorSystemSetting.getActorSystem) match {
为此:

ActorSystemSetting.getActorSystem match {
ActorSystemSetting.getActorSystem已经返回OptionActorSystem,因此您不需要将其包装在另一个选项中

它不起作用,因为您试图将Option[Option[ActorSystem]]类型的值与Somesystem:ActorSystem匹配,后者属于Option[ActorSystem]类型,因此它永远无法匹配