如何在 Timber 的 vararg 中插入参数?

How insert arguments in vararg in Timber?

我无法在可变参数中插入参数

官方文档提供了一个 example 适合我的方法:

fun foo(vararg strings: String) { /*...*/ }

foo(strings = *arrayOf("a", "b", "c"))

但是如果我尝试在 Timber 方法中使用类似的方法,我会收到错误消息:

val args = arrayOf("a", "b", "c")
Timber.e(e, "check web", *args)

这里还有代码木材代码:

  /** Log an error exception and a message with optional format args. */
  public static void e(Throwable t, @NonNls String message, Object... args) {
    TREE_OF_SOULS.e(t, message, args);
  }

这不是 Kotlin 语法问题。木材带有棉绒检查。它可以告诉您传递的字符串中有多少参数以及它们是否与您在可变参数中传递的参数数量相匹配,并在编译时显示适用的错误或警告。

See here 用于检查此内容的代码。

像这样解决了我的问题:

Timber.e(
    e,
    "Something went wrong %s %s",
    "Provider name: ${connection.name}",
    "id: ${connection.id}"
)

还需要为字符串添加以下值 %s