在lombok扩展中,方法obj.method()SomeUtil.method(obj)的语法.它允许obj为空.

Kotlin extensions methods are resolved statically so I assume it's the same syntactic sugar. But when I wrote

fun Any.stringOrNull() = this?.toString()

我收到了关于非空接收器不必要的安全呼叫的警告.这是否意味着我不能在像Lombok这样的空对象上调用扩展函数?

推荐答案

如果将其定义为可空类型的扩展,则可以在可空对象上调用它:

fun Any?.stringOrNull() = ...

Otherwise, like with any other method, you'd have to use the safe call operator.

Kotlin相关问答推荐

如何在 Big Data 中使用Inc过滤器?

Kotlin-elvis算子don';不使用map.get()

用于将 0.5 变为 0 的 round() 函数的模拟

协程子作业(job)取消

在kotlin中匹配多个变量

Kotlin 如何使用其 get 函数在内部检索映射值

如何缩短 MaterialTheme.colors.primary?

从 HashMap 检索时的 NPE,即使 containsKey() 在多线程环境中返回 true

Jetpack compose 可滚动表格

Fragment的onDestroy()中是否需要将ViewBinding设置为null?

如何禁用智能投射突出显示 Kotlin?

Kotlin 类的调用方法

Android Studio 和 Kotlin:Unresolved reference: also

Kotlin协程处理错误和实现

如何将 Kotlin 日期中的字符串或时间戳格式化为指定的首选格式?

如何暂停kotlin coroutine直到收到通知

Android studio 4.0 新更新版本说 Kotlin 与这个新版本不兼容

访问Kotlin中的属性委托

Kotlin:在何时使用枚举

从 Kotlin 访问 Integer.class