加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala模式匹配Java枚举类型

发布时间:2020-12-16 10:07:52 所属栏目:安全 来源:网络整理
导读:我有一个 Java枚举类型,有一些字符串,我想模式匹配.这是我到目前为止所做的: public enum MyEnum { YEAR,MONTH;} 在我的scala函数中,我执行以下操作: timePeriod.toUpperCase match { case MyEnum.YEAR.name = doSomething case MyEnum.MONTH.name = doSom
我有一个 Java枚举类型,有一些字符串,我想模式匹配.这是我到目前为止所做的:

public enum MyEnum {
  YEAR,MONTH;
}

在我的scala函数中,我执行以下操作:

timePeriod.toUpperCase match {
  case MyEnum.YEAR.name => doSomething
  case MyEnum.MONTH.name => doSomething
}

当我编译时,我收到以下错误:

stable identifier required,but YEAR.name found

我没有足够的信息来理解错误的根本原因.有任何想法吗?

解决方法

您不能在匹配中将方法调用作为子句,因为方法的结果可能不同.我们知道在这种情况下它没有但是没有办法向编译器指示方法调用是常量.

你可以这样做:

timePeriod.toUpperCase match {
    case period if period == MyEnum.YEAR.name =>
    case period if period == MyEnum.MONTH.name =>
  }

哪个更冗长.其他人可能会有更短更好的建议.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读