Я не уверен, что вы пытаетесь заархивировать, используя null
s (за исключением большего количества NPE во время выполнения), но я могу рекомендовать вам не использовать null
в вашем коде Scala. Scala имеет тип Option
, который можно использовать вместо null
. Так что в вашем случае это будет выглядеть так:
var next: (Option[A], A) = (None, n)
Я нахожу этот код намного более понятным, и его большое преимущество заключается в том, что тип кортежа сообщает другим людям (и компилятору), что его первый элемент не какой-то A
, а либо Some[A]
, либо None
. * 1011. *
Если вам нужно интегрировать с существующим кодом Java, который использует null
, вы можете как можно скорее обернуть объекты, поступающие со стороны Java, в опцию. Вы можете сделать это так:
var next: (Option[A], A) = (Option(getAFromSomeMethodThatCanReturnNull()), n)
Этот ответ, вероятно, не отвечает на ваш первоначальный вопрос, но я надеюсь, что он будет как-то полезен.