Класс scala.unchecked
final class unchecked extends Annotation
Аннотация, обозначающая, что аннотированный элемент не должен рассматриваться для дополнительных проверок компилятором. Конкретные применения включают аннотирование объекта выражения match для подавления предупреждений об исчерпывающем и достижимом коде, и аннотирование аргумента типа в случае match для подавления предупреждений о неявном приведении типов.
Такое подавление должно применяться с осторожностью, без него можно столкнуться с scala.MatchError или java.lang.ClassCastException во время выполнения. В большинстве случаев предупреждение можно и следует устранить, вместо его подавления.
object Test extends App {
// This would normally warn "match is not exhaustive"
// because `None` is not covered.
def f(x: Option[String]) = (x: @unchecked) match { case Some(y) => y }
// This would normally warn "type pattern is unchecked"
// but here will blindly cast the head element to String.
def g(xs: Any) = xs match { case x: List[String @unchecked] => x.head }
}
| Наследование |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/unchecked.html