SLF4J varargs将第一个字符串解释为标记

ser*_*inc 9 java logging android slf4j

使用时

log.trace("with name {}, duration {}, repetitions {}", name, duration, repetitions);
Run Code Online (Sandbox Code Playgroud)

SLF4J抱怨如下

[javac] sourcefile.java:105:错误:不兼容的类型:字符串无法转换为Marker
[javac] log.trace("with name {},duration {},repetitions {}",
[javac] ^
[javac]注意:某些消息已经简化;使用-Xdiags:verbose重新编译以获得完整输出
[javac] 1错误

运用

log.trace("with name {}, duration {}, repetitions {}",
      new Object[]{name, duration, repetitions});
Run Code Online (Sandbox Code Playgroud)

解决问题,但似乎是kludgey.(特别是因为API允许varargs).

通过这个答案似乎说升级到SLF4J 1.7可以解决问题,但android-slf4j是1.6.1.

有没有办法在SLF4J for Android中使用varargs构造函数?还有其他选择吗?

小智 1

尝试使用以下示例代码解决您的问题:

log.trace("with name {0}, duration {1}, repetitions {2}", name, duration, repetitions);
Run Code Online (Sandbox Code Playgroud)