我是Kotlin的初学者,代码A从资源文件中获取一个int值。
我希望使用扩展函数来执行此操作,并像this.getInteger(R.integer.ActivityEditBackup)
但我做的代码B不正确,我该如何解决?
代码A
mContext.resources.getInteger(R.integer.ActivityEditBackup))
代码B
inline fun <reified T : Activity>Context.getInteger(int id): int {
return T.resources.getInteger(id)
}
答案 0 :(得分:3)
你有点过分复杂了。
Context
,也不需要将扩展程序设为通用。Int
,首字母为I
。Context
。this
总的来说,有了这些变化:
inline fun Context.getInteger(@IntegerRes id: Int): Int {
return this.resources.getInteger(id)
}
关于语法也存在一些普遍的混淆,你应该查看functions然后extensions的文档。
此外,您可以将函数转换为表达式主体,并省略显式this
:
inline fun Context.getInteger(@IntegerRes id: Int) = resources.getInteger(id)