Me encuentro con un problema extraño: tengo una función general que se usa para recuperar cadenas de recursos (es solo para evitar escribir context.resources.getString() cada vez):
protected fun string(@StringRes stringRes: Int, vararg args: String): String = app.getString(stringRes, args)
funcionó bien hasta ahora, cuando agregué los varargs para recuperar cadenas formateadas. Las cadenas simples aún funcionan bien, pero cuando traté de recuperar una formateada:
string(R.string.formatted_string, myId)
mi recurso de cadena:
<string name="formatted_string">#%s</string>
consigo algo de basura:
#[Ljava.lang.String;@3a59711
esperado:
#4848684
la basura cambia con el recurso que solicito
Parece un identificador de objeto.
Si no uso el método, funciona bien.
¿Que está sucediendo aquí?
La solución para usted es usar el operador de propagación *
:
fun string(@StringRes stringRes: Int, vararg args: String): String = getString(stringRes, *args)