scala - 没有结果的类型测试:Option[akka.actor.ActorSystem] 类型的值不能也是 akka.actor.ActorSystem
问题描述
我正在使用替罪羊进行静态代码分析我收到一条警告消息
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
已经返回Option(ActorSystem)
,因此您无需将其包装在另一个Option
.
它不起作用,因为您试图将类型的值与 匹配Option[Option[ActorSystem]]
,Some(system: ActorSystem)
该类型的类型Option[ActorSystem]
因此永远无法匹配。
推荐阅读
- email - VB6 使用 Gmail 作为远程 SMTP 服务器发送电子邮件
- file - 如何将大量文件上传到谷歌存储桶?
- react-native - 在终端中编写命令时何时使用 expo、npm 和 yarn?
- reactjs - Material-ui 搜索图标需要在输入框的右侧
- python - 检查 yaml 文件中 xPaths 的差异
- javascript - 如何将日期/时间显示从 24 小时转换为 12 小时 AM/PM
- c++ - 共享内存中的健壮互斥体不是那么健壮
- r - 从集群中提取组
- java - 更改 Spring Boot 和 Maven 项目的默认目录结构
- wordpress - 如何从我的帐户页面隐藏库存产品