jac*_*ast 5 resources android kotlin
我遇到一个奇怪的问题:我有一个通用函数,用于检索资源字符串(这是为了避免每次都编写context.resources.getString()):
protected fun string(@StringRes stringRes: Int, vararg args: String): String = app.getString(stringRes, args)
Run Code Online (Sandbox Code Playgroud)
直到现在,当我添加varargs以检索格式化的字符串时,它的工作情况都很好。简单的字符串仍然可以正常工作,但是当我尝试检索格式化的字符串时:
string(R.string.formatted_string, myId)
Run Code Online (Sandbox Code Playgroud)
我的字符串资源:
<string name="formatted_string">#%s</string>
Run Code Online (Sandbox Code Playgroud)
我得到一些垃圾:
#[Ljava.lang.String;@3a59711
Run Code Online (Sandbox Code Playgroud)
预期:
#4848684
Run Code Online (Sandbox Code Playgroud)
我请求的资源的垃圾更改
它看起来是一个对象标识符。
如果我不使用该方法,它将正常工作
这是怎么回事
您的解决方案是使用传播运算符 *:
fun string(@StringRes stringRes: Int, vararg args: String): String = getString(stringRes, *args)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |