【发布时间】:2018-09-06 17:53:59
【问题描述】:
Reified Type 参数支持运行时访问传递给函数的类型。我知道这在某些情况下可能很有用,可以避免反射。
但也有使用具体类型参数创建扩展函数的示例,它们只是将 T::class.java 语法包装在如下方法中。
inline fun <reified T > Context.systemService() =
ContextCompat.getSystemService(this,T::class.java)
kotlin 参考中提到以下用法调用站点并不漂亮。为什么不鼓励以下用法?
ContextCompat.getSystemService(this, NotificationManager::class.java)
我们现在可以这样写:
systemService<NotificationManager>()
在这种情况下,除了代码看起来更干净之外,还有其他好处吗?
注意:示例来自I/O' 18
【问题讨论】:
-
他们都做同样的事情,不管你叫什么
标签: android kotlin kotlin-android-extensions kotlin-extension