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]类型,因此它永远无法匹配