Я подозреваю, что Скала не должен позволять вам делать такие Array[Nothing]
экземпляры. По определению нет никаких экземпляров ничего вокруг, но ваш массив выглядит так, как будто он заполнен Nothing
s, которые имеют значение null, но null не является допустимым значением для Nothing
. Это, например, происходит с ошибкой type mismatch; found : Null(null) required: Nothing
val n: Nothing = null
Так что я ожидал бы столкнуться с неприятностями каждый раз, когда вы действительно можете обмануть систему, полагая, что вы наконец-то овладели столь востребованным, например, Nothing
…
Вот еще один странный случай. Запустите это:
object Main {
class Parametrized[T] { var value: T = _ }
def main(args: Array[String]) {
val p = new Parametrized // typed as Parametrized[Nothing]
val n = p.value // n is now actually an instance of Nothing... isn't it?
println(p.value) // prints null, but null is not an instance of Nothing
println(n) // throws NullPointerException...
}
}