【发布时间】:2018-09-15 21:35:36
【问题描述】:
我想为可空字符串选择一个验证函数:
val aString: String? = ...
val validation
// : KFunction1<CharSequence?, Boolean>
= if (...) Objects::isNull else StringUtils::isNotBlank
isNotBlank 来自 apache commons。它接受字符串并返回布尔值。
当我取消显式类型声明的注释时,一切都很好。但是当没有显式声明类型时,它会推断KFunction1<CharSequence, Boolean>,因此参数不能为空。为什么?
【问题讨论】:
-
你也可以在kotlin > 1.2.0中使用String::isNotBlank
-
我不太了解您的问题。你为什么不直接使用来自 kotlin 的 aString.isNullOrEmpty()?
-
使用
String::isNullOrEmpty而不是StringUtils::isNotBlank会产生同样的问题
标签: kotlin type-inference