我尝试调用 this.asType().asTypeName().isNullable isNullable - 不能正常工作。
我找到了一个解决方案,但看起来不太好:
fun Element.getTypeNameWithRealNullable(): TypeName {
val annotation = this.getAnnotationMirror(Nullable::class)
return annotation?.let {
this.asType().asTypeName().copy(nullable = true)
} ?: this.asType().asTypeName().copy(nullable = false)
}
fun <T : Annotation> Element.getAnnotationMirror(type: KClass<T>): AnnotationMirror? {
return this.getAnnotation(type.java.name)
}
kotlinpoet 有更好的方法来获得正确的 isNullable 吗?