3

我尝试调用 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 吗?

4

0 回答 0