Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android kotlin具体化类型的这个用例有用吗_Android_Kotlin_Kotlin Android Extensions_Kotlin Extension - Fatal编程技术网

Android kotlin具体化类型的这个用例有用吗

Android kotlin具体化类型的这个用例有用吗,android,kotlin,kotlin-android-extensions,kotlin-extension,Android,Kotlin,Kotlin Android Extensions,Kotlin Extension,具体化的类型参数支持对传递给函数的类型的运行时访问。我知道这在某些情况下很有用,可以避免反射 但也有使用具体化类型参数创建扩展函数的示例,这些参数只是将T::class.java语法包装在如下方法中 inline fun <reified T > Context.systemService() = ContextCompat.getSystemService(this,T::class.java) 我们现在可以这样写: systemService<Noti

具体化的类型参数支持对传递给函数的类型的运行时访问。我知道这在某些情况下很有用,可以避免反射

但也有使用具体化类型参数创建扩展函数的示例,这些参数只是将T::class.java语法包装在如下方法中

  inline fun <reified T > Context.systemService() =
      ContextCompat.getSystemService(this,T::class.java)
我们现在可以这样写:

  systemService<NotificationManager>()
systemService()
在这种情况下,除了代码看起来更干净之外,还有其他好处吗


注意:示例来自

这完全取决于个人意见,因为两个函数将做相同的事情


人们倾向于认为归化的KOTLIN扩展方法更惯用,因为它使用高级语言特征来提供比你必须使用的语法更简单的语法。这并不意味着你一定要使用它——决定你自己是否喜欢它。

这完全取决于个人意见,因为两个函数都会做同样的事情


人们倾向于认为归化的KOTLIN扩展方法更惯用,因为它使用高级语言特征来提供比你必须使用的语法更简单的语法。这并不意味着你必须使用它——决定你自己是否喜欢它。

他们都做同样的事情,不管你叫谁,他们都做同样的事情,不管你叫谁
  systemService<NotificationManager>()