简体   繁体   English

如何检查泛型参数 T 是否可以为空?

How to check whether generic parameter T is nullable?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文简体   中文繁体   英文版本 版本,有任何建议请联系yoyou2525@163.com。

Given a function给定一个 function

inline fun <reified T> foo() {
    //... do something differently if T is nullable ...
}

how do I check whether T is nullable or not?如何检查T是否可以为空?

1 个回复

Sounds so obvious, once you know it:听起来很明显,一旦你知道它:

T is nullable... if null can be of type T . T可以为空...如果null可以是T类型。

eg例如

inline fun <reified T> isTypeNullable(): Boolean = when {
    null is T -> true
    else -> false
}

cf.参看。 https://ideone.com/Pz3ia6 https://ideone.com/Pz3ia6

(Important, here, that T is reified , otherwise it will be erased and the whole thing throws an exception) (重要的是,这里Treified ,否则它将被删除并且整个事情都会引发异常)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM