Я бы использовал ?.
безопасный оператор , а затем поместил бы свое собственное исключение в конце после ?:
оператора Элвиса .Таким образом, вы получите сообщение, которое имеет смысл.Использование только !!
не очень полезно для тех, кто не знает, в чем заключались тонкости.
val cmd = gitRepo.add()?.addFilepattern("test.txt") ?: throw IllegalStateException("assert: gitRepo.add() returned an unexpected null")
cmd.doSomething() // never is null guaranteed
Если значение равно null
, у вас будет пользовательская ошибка.
assert: gitRepo.add () вернул неожиданный нуль
И после этой строки вам не нужно будет null
проверять, так как результат выражениягарантированно никогда не будет null
.
Если вы проверяете код другой библиотеки и убедитесь, что он никогда не будет null
, несмотря ни на что, тогда !!
подходит.Но если вы не уверены, сделайте одно лучше с пользовательским сообщением.
Примечание. Я исключил первый ?.
из вашего примера, потому что я предполагаю, что git_repo
само по себе не может быть пустым.Кроме того, я переименовал его, чтобы не было подчеркивания, которое не является нормальным соглашением по именам Kotlin.