在Kotlin中,当声明为类型获取KClass时,例如String :: class(表示其类型为String的值),是否有一种语法来指示该值可以为空(即表示String?值而不是String) .
上下文是我正在尝试使用KotlinPoet生成Kotlin类,但我创建的所有属性(使用PropertySpec.builder)都不可为空(例如String,当我真正想要的是String?)时.
谢谢你的帮助.
不.Kotlin具有Nullable类型和非Null类型,但它没有可空类和非null 类的概念.A KType是分类器加上可空性,其中分类器可以是a KClass.
KotlinPoet 0.1.0没有办法代表可以为空的类型,但是在0.2.0 via 中添加了对这种类型的支持TypeName.asNullable.例如:
val type = TypeName.get(String::class).asNullable()
Run Code Online (Sandbox Code Playgroud)
如果有人需要这个:从KotlinPoet 0.3.0开始,语法是:
PropertySpec.builder("myVar", String::class.asTypeName().asNullable()).mutable(true).initializer("%S", null)
Run Code Online (Sandbox Code Playgroud)
生产 :
var myVar:String? = null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |