Получить класс обнуляемого типа - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь соответствовать типу обнуляемого String? в упражнении на рефлексию Kotlin:

data class Test(a: String, b: String?)
val test = Test("1", "2")
val properties = test::class.declaredMemberProperties
val propertyNames = properties.joinToString(",") { 
        when (it.returnType) {
            String?::class.createType() -> "string?"
            String::class.createType() -> "string"
            else -> throw Exception()
        }
}

Увы, он завершается ошибкой, Type in a class literal must not be nullable, для String?::class.

1 Ответ

0 голосов
/ 25 сентября 2018

Функция createType имеет дополнительный обнуляемый параметр, который, казалось, работал, когда я ее тестировал.

String::class.createType(nullable = true) -> "string?"
...