Ссылка KClass для значений с нулевым значением

В Kotlin, объявляя получение KClass для типа, например String :: class (который представляет значения, тип которых будет String), существует синтаксис, указывающий на то, что значение равно null (т. Е. Представляют значения String? Вместо String) ,

Контекст заключается в том, что я пытаюсь создать классы Kotlin с использованием KotlinPoet, но все свойства, которые я создаю (с PropertySpec.builder), не могут быть нулевыми (например, String, когда я действительно хочу, это String?).

Спасибо за вашу помощь.

    Нет. Kotlin имеет типы Nullable и Non-Null, но в нем нет понятия классов с нулевым значением и непустых классов . KType – это классификатор плюс nullability, где классификатор может быть KClass .

    KotlinPoet 0.1.0 не имел возможности представлять типы с нулевым значением, но поддержка для таких была добавлена ​​в 0.2.0 через TypeName.asNullable . например:

     val type = TypeName.get(String::class).asNullable() 

    В случае, если кому-то это нужно: с KotlinPoet 0.3.0 синтаксис:

     PropertySpec.builder("myVar", String::class.asTypeName().asNullable()).mutable(true).initializer("%S", null) 

    производить :

     var myVar:String? = null 

    KotlinPoet 0.2.0 только что был выпущен и добавлен поддержка типов с asNullable() значением через asNullable() . Например:

     PropertySpec.builder("name", TypeName.get(String::class).asNullable()).build() 

    … будет создавать:

     val name: java.lang.String? 

    Обратите внимание, что в примечаниях к выпуску упоминаются некоторые сигнатуры функций в версии 0.2.0 из (тип, имя) для использования (имя, тип) вместо этого, поэтому не бойтесь, когда обновление прерывает ваш код.

    Intereting Posts
    Ошибка связанного обслуживания с помощью «Context.startForegroundService () не вызвала ошибку Service.startForeground ()» API не работает внутри Anko Async Обработка аннотации kotlin: проверьте, задан ли TypeElement из класса kotlin Не удалось проанализировать: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: ошибка при обработке аннотации Как создать библиотеку в Kotlin и использовать ее из проектов, предназначенных для javascript или java? Проверьте, работает ли моя активность в MultiWindowMode или не используется Kotlin Второй конструктор класса Kotlin с другим параметром kotlin-android null не может быть отличен для непустого типа kotlin.String Почему отображается только первая строка с помощью утилиты Recyclerview gridlayoutmanager : app: ошибка kaptDebugKotlin при запуске модульного теста Отражающая функция вызова и использование параметров по умолчанию Как использовать настраиваемый сеттер в корпусе конструктора класса Kotlin Android. Супертипы следующих классов не могут быть решены. ((Хранилище номеров, Библиотека Android) Ошибки HashMap – содержитKey, get Out-projected type в универсальном интерфейсе запрещает использование метода с общим параметром