我目前正在实现一个内部使用的小工具,它将一组Excel文件中的数据导入我们的应用程序.根据Excel单元格的类型,我决定如何处理数据.Excel文件只能包含字符串,数字和布尔单元格,如果遇到任何其他单元格,程序可以在运行时自由崩溃.
现在Scala正确警告我,细胞类型的匹配并不详尽,细胞可以有空白,公式,错误的类型......
有没有办法如何抑制警告,除了明显的警告?:
t match {
case STRING => ???
case NUMERIC => ???
case BOOLEAN => ???
case _ => throw new MatchError() // redundant, just to suppress the compile time warning
}
Run Code Online (Sandbox Code Playgroud)
hel*_*s35 12
您可以使用未经检查的注释:
(t: @unchecked) match {
case STRING => ???
case NUMERIC => ???
case BOOLEAN => ???
}
Run Code Online (Sandbox Code Playgroud)
正如其他人所提到的,你应该避免使用它,而是相应地选择你的类型以避免这种警告(例如通过使用密封的特征).但是,如果您发现自己无法这样做,并且您有某种不变量可以保证您的类型始终是给定类型之一,则使用@unchecked可以解决您的问题.