Articles of nullable

Обработка Nullable Type в RxJava с Kotlin

При использовании RxJava2 в Java у меня есть преимущество в том, что фильтрация map() автоматически выбрала нулевые значения. Однако с нулевыми типами в Котлине я делаю что-то вроде этого: val loadConferencesSingle = service.getConferences() .map { it.conferences ?: listOf<Conference>() } Вызов service.getConferences() в этом случае представляет собой Single-излучение ConferecesResponse которое выглядит как data class ConferencesResponse(val conferences: […]

Параметр аннотированного типа в Java для компилятора Kotlin

В Java у меня есть следующий метод: public Optional<Foo> getFoo() { // always return some non-null value } В коде Котлина возвращаемый тип этого метода задается как Optional<Foo!>! , Используя аннотацию @Nonnull я могу разрезать это на Optional<Foo!> ( @Nonnull Только тип Foo больше не проверен нулем). Есть ли способ аннотировать метод, чтобы заставить компилятор […]

В Kotlin, как я идиоматически обращаюсь к значениям вложенной карты с нулевым значением или возвращать значение по умолчанию?

Вопрос о быстрой практике Quick Kotlin, так как я не мог найти наилучшего способа сделать это из документации. Предположим, что у меня есть следующая вложенная карта (ввод текста указан явно для цели этого вопроса): val userWidgetCount: Map<String, Map<String, Int>> = mapOf( "rikbrown" to mapOf( "widgetTypeA" to 1, "widgetTypeB" to 2)) Может ли следующий режим быть […]

Операторы с нулевым значением, допустимые в общем классе?

У Kotlin есть прекрасные возможности ( ?. И !!. ), обрабатывающие типы с нулевым значением. Но это меня просто поглаживает – что, если вы не знаете, имеете ли вы дело с типом с нулевым или непустым значением? Что делать, если у вас есть универсальный класс MyClass<T> , тогда у вас есть только один тип T […]

Как я могу переопределить java-метод и изменить значение nullability параметра?

Я переопределяю метод из библиотеки Java, а параметр для функции аннотируется как @NonNull . Однако, когда метод вызывается, параметр часто приходит с null значением. Когда я переопределяю метод в Kotlin, он заставляет меня уважать аннотацию @NonNull и отмечать параметр как недействительный. Конечно, Kotlin генерирует исключение во время выполнения, когда параметр приходит с нулевым значением. Есть […]

Предоставить Kotlin предупреждение о назначении гибкого / платформенного типа для непустого типа?

При вызове функции Notable-annotated Java от Kotlin мы получаем возвращаемые значения с гибким типом, обозначаемые восклицательными знаками, например String! , Kotlin молча разрешает присваивать эти гибкие значения нормальному непустому типу, например String , что может вызвать NullPointerExceptions во время выполнения. Я бы предпочел получить предупреждения или ошибки компилятора для таких назначений. В качестве альтернативы, обрабатывайте […]

В Котлине, какой идиоматический способ справиться с значениями NULL, ссылаться или преобразовывать их

Если у меня есть Xyz? тип Xyz? , Я хочу ссылаться на него или преобразовать его в Xyz тип Xyz . Каков идиоматический способ сделать это в Котлине? Например, этот код является ошибкой: val something: Xyz? = createPossiblyNullXyz() something.foo() // Error: "Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver […]

В Kotlin Как я могу преобразовать Int? к Int

Я использую HashMap<Int, Int> в Kotlin, и когда я выхожу из него, возвращаемый тип – Int? , Как я могу преобразовать Int? к Int ? До сих пор я пытался использовать Int?.toInt() , но это, кажется, возвращает Int? , Я пишу функцию Fibonacci, и мой код выглядит так: val fibMemo : Map<Int, Int> = HashMap<Int,Int>() […]