Описание тега kotlin-null-safety

3 ответа

Обрабатывать объект, который может вернуть ноль в kotlin

Android Studio 3.0 У меня есть Java-код, который я конвертирую в Kotlin для моего проекта. public String getAuthUserEmail() { FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); String email = null; if (user != null) { email = user.getE…
08 авг '17 в 15:08
1 ответ

kotlin отражение проверить nullable типы

Как я могу проверить, содержит ли переменная KType значение обнуляемого типа kotlin (eG Int?)? я имею var type: KType переменная из KProperty<*>.returnType и мне нужно определить, равен ли он определенным типам котлина (Int, Long и т. д.). Это…
11 мар '16 в 17:10
3 ответа

Android Room возвращает значение NULL как ненулевой тип

Я имею Dao вернуть простой объект. Если объект не существует, возврат комнаты null, но приложение для Android не имеет сбоев. Также, если я назначу это значение переменной, не равной NULL, в приложении не будет сбоев. Dao: @Query("SELECT * FROM user…
3 ответа

Это очень плохая практика использования! в котлин?

Недавно была дискуссия о том, является ли!! следует использовать в коде kotlin. Одно мнение, что это не следует использовать вообще, потому что это плохая практика с kotlin и увеличивает риск аварии. Другое мнение чувствует себя с помощью!! это не с…
20 дек '18 в 00:54
2 ответа

Создать Array без обнуляемых типов из Array с обнуляемыми типами

В Kotlin мы должны различать обнуляемые типы и не обнуляемые типы. Допустим, у меня есть Array<String?> из которого я знаю, что каждое значение в нем на самом деле не равно нулю. Есть ли простой способ создать Array<String> из исходного …
21 ноя '18 в 12:29
2 ответа

Требование в блоке инициализации суперкласса вызывает IllegalArgumentException [Kotlin]

Доброе утро, котлинские гуру. У меня есть структура наследования, в которой абстрактный суперкласс реализует некоторые общие проверки данных. Компилятор не жалуется, но после выполнения JVM создает исключение IllegalArgumentException Код fun main(ar…
09 ноя '17 в 10:08
2 ответа

Как создать экземпляр объекта, используя значения параметров конструктора по умолчанию в Kotlin?

У меня есть класс данных со значениями по умолчанию. data class Project( val code: String, val name: String, val categories: List<String> = emptyList()) Отражение Java не может создать экземпляр класса, когда некоторые значения равны нулю. Я п…
10 ответов

Как запустить код, если объект нулевой?

В Kotlin я могу запустить код, если объект не является нулевым, как это: data?.let { ... // execute this block if not null } но как я могу выполнить блок кода, если объект нулевой?
21 авг '17 в 14:45
1 ответ

Ненулевое утверждение Котлина о нуле

Поскольку у Котлина есть ненулевое утверждение, я нашел несколько забавных вещей... val myvar: String = null!! Это потерпит крах. Но дело в том, что он не проверяется во время компиляции. Приложение будет зависать во время выполнения. Разве это не д…
1 ответ

Мне нужен совет по нулевой безопасности в Java

Я читал статьи о том, чтобы быть ноль-безопасным в Java, и как это плохо return null или того греха, который проходит null в качестве аргумента. Я понимаю, что это упрощает жизнь, и люди не всегда читают документацию, поэтому они не знают, может ли …
12 янв '18 в 15:00
3 ответа

Можно ли привести поле к ненулевой версии самого себя?

У меня есть класс данных data class MyModel(private val _data: MyData? = null) И я хочу убедиться, что мои данные доступны только тогда, когда они не равны нулю, иначе выведите. Я использую ниже, что хорошо. fun getData(): MyData { return checkNotNu…
11 июл '17 в 01:18
1 ответ

Дейзи Чейнинг Элвис Операторс?

Это как-то уродливо override var x1: Double = 0.0 //x-coordinate for object get() = if(hasParent) { //if there is no parent, we can't have an x coord anyway - nowhere to draw this object if (hasPrev) { //we won't always have a previous event, thus t…
26 июл '18 в 04:08
1 ответ

Kotlin .let {} нулевая безопасность предположительно ложная ошибка

При использовании .let { } Функция я заметила, что при выполнении следующих действий: bucket?.assignedVariantName.let { bucket?.determineVariant() <-- guarantee safety for bucket } В этом случае вы должны гарантировать безопасность ковша, т.е. bu…
26 апр '17 в 11:12
2 ответа

kotlin обратное логическое безопасное литье

Допустим, у меня есть объект Response. Теперь я хотел бы проверить булеву переменную success в поле Response и сделать ранний возврат, если ответ не успешен. if(response == null || !response.success){ return; } //Java version Теперь я хотел бы испол…
10 ноя '17 в 00:11
2 ответа

Лучший способ назначить, только если правая сторона не равна нулю?

В Kotlin я хочу сделать присваивание только в том случае, если другая переменная не равна нулю (в противном случае, нет операции). Я могу придумать два лаконичных способа: fun main(args: Array<String>) { var x: Int? = null var n = 0 // ... do …
24 дек '17 в 07:05
2 ответа

Вызов метода с обнуляемой и не обнуляемой коллекцией

Возможно ли в Kotlin написать функцию, которая может быть вызвана с обнуляемыми и не обнуляемыми коллекциями? Я думаю о чем-то вроде этого: fun <C: MutableCollection<out String>> f(c: C): C { // ... } Не то чтобы мне нужно было писать та…
29 ноя '18 в 07:45
1 ответ

Почему toString не генерирует исключение при вызове нулевого значения в Kotlin?

Учитывая код fun main(args: Array<String>) { val someText: String? = null println(someText.toString()) } При запуске вывод null Появляются два вопроса: возможно ли реализовать собственный нулевой безопасный метод с отступлением к некоторому ко…
12 мар '18 в 14:39
2 ответа

Не удалось определить тип Котлина

Этот код Котлин: fun badKotlin(text: String?): Boolean { if (text == null) { return true } var temp = text if (false) { temp = Arrays.deepToString(arrayOf(text)) } return temp.isBlank() // <-- only safe (?.) or non null asserted (!!.) calls } не …
13 мар '18 в 04:10
2 ответа

Ненулевое значение в Kotlin производит nullpointerexception

У меня есть массив ненулевых значений, как это: private val dogs = ArrayList{Dog}() // replace {} with <> Это населено так: val dog = Dog() dog.name = “bob” dogs.add(dog) Существует до 3 различных методов, которые могут заполнять его таким обр…
2 ответа

NullPointerException в котлин и анко

Я новичок в Kotlin и Anko. Я узнал, что Kotlin абсолютно безопасен, но приведенный ниже код вызовет NullPointerExceptionЯ не знаю почему, кто-то может мне это объяснить? intent.extras["Key"]?.toString() textView(intent.extras["Key"]?.toString() ?: "…