当字符串不为空时,Scala 选项变量会覆盖

Scala option variable overrides when string is not empty

我有 2 个选项变量,当第一个是 None 或空字符串时,我想将第二个分配给第一个。有没有更好的写法?我需要为 class.

中的其他 10 个类似属性执行这些操作
var myoption1: Option[String]
var myoption2: Option[String]

import org.apache.commons.lang3.StringUtils
  implicit class Addons(val s: String) {
    def isEmptyS = StringUtils.isEmpty(s)
    def isNotEmpty = StringUtils.isNotEmpty(s)
  }

if (myoption1.map(_.isEmpty).getOrElse(true) &&
    myoption2.map(_.isNotEmpty).getOrElse(false)
    ) myoption1 = myoption2

如果你不关心 2 个中的哪个空字符串会在 myoption1 中结束,如果它们都是空的,那么我建议:

myoption1 = myoption1.filter(_.nonEmpty).orElse(myoption2)