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

如何在Scala中压制“匹配可能不是详尽无遗”的警告?

发布时间:2020-12-16 09:08:21 所属栏目:安全 来源:网络整理
导读:参见英文答案 How to suppress “match is not exhaustive!” warning in Scala????????????????????????????????????4个 我目前正在实现一个内部使用的小工具,它将一组Excel文件中的数据导入我们的应用程序.根据Excel单元格的类型,我决定如何处理数据. Exce
参见英文答案 > How to suppress “match is not exhaustive!” warning in Scala????????????????????????????????????4个
我目前正在实现一个内部使用的小工具,它将一组Excel文件中的数据导入我们的应用程序.根据Excel单元格的类型,我决定如何处理数据. Excel文件只能包含字符串,数字和布尔单元格,如果遇到任何其他单元格,程序可以在运行时自由崩溃.

现在Scala正确警告我,细胞类型的匹配并不详尽,细胞可以有空白,公式,错误的类型……

有没有办法如何抑制警告,除了明显的警告?:

t match {
  case STRING => ???
  case NUMERIC => ???
  case BOOLEAN => ???
  case _ => throw new MatchError() // redundant,just to suppress the compile time warning
}

解决方法

您可以使用 unchecked注释:

(t: @unchecked) match {
  case STRING => ???
  case NUMERIC => ???
  case BOOLEAN => ???
}

正如其他人所提到的,你应该避免使用它,而是相应地选择你的类型以避免这种警告(例如通过使用密封的特征).但是,如果您发现自己无法这样做,并且您有某种不变量可以保证您的类型始终是给定类型之一,那么使用@unchecked可以解决您的问题.

(编辑:李大同)

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

    推荐文章
      热点阅读