使用时
log.trace("with name {}, duration {}, repetitions {}", name, duration, repetitions);
SLF4J抱怨如下
[javac] sourcefile.java:105:错误:不兼容的类型:字符串无法转换为标记
[javac] log.trace(“with name {},duration {},repetitions {}”,
[javac] ^
[javac]注意:有些消息已被简化;使用-Xdiags重新编译:详细以获得完整输出
[javac] 1错误
使用
log.trace("with name {}, duration {}, repetitions {}",
new Object[]{name, duration, repetitions});
解决了这个问题,但看起来很笨拙。 (特别是因为API允许varargs)。
this answer似乎说升级到SLF4J 1.7可以解决问题,但是android-slf4j is at 1.6.1。
有没有办法在SLF4J for Android中使用varargs构造函数?还有其他选择吗?
答案 0 :(得分:2)
似乎是API中的错误。
使用了Varargs,但是对于Marker方法,还有定义了1,2和3个参数的方法。
log.trace(Marker, Object...)
log.trace(Marker, Object)
log.trace(Marker, Object, Object)
log.trace(Marker, **Object**, Object, Object)
然而,String API只有varargs和1和2个arg方法。
log.trace(String, Object...)
log.trace(String, Object)
log.trace(String, Object, Object)
对我来说,Varargs可以使用1,2或4个参数。
它只有3个参数的问题。
通过将突出显示的对象更改为字符串,将其修复为1.7。
答案 1 :(得分:1)
尝试使用以下示例代码解决您的问题:
$( window ).load(function() {