我将自己的安卓程序包装在我自己的
中public static void d(String tag, String msg, long... varArgs) {
Log.d(tag, String.format(msg, varArgs));
}
但是如果我传入的参数不是varArgs,我会收到警告。但更糟糕的是,这个价值印得很奇怪。就像我致电myLog.d(TAG,"timestamp %s",timestamp)
一样,我得到timestamp: [J@3d4e5d16
Gradle编译警告:
警告:非varargs调用带有不精确参数类型的varargs方法 为最后一个参数; Log.d(tag,String.format(msg,varArgs));
答案 0 :(得分:1)
问题不在于您没有发送var args,而是发送long[]
,它是可变数量的Object
参数的第一个元素。
这可以解决您的问题:
Log.d(tag, String.format(msg, (Object[]) varArgs))
答案 1 :(得分:0)
无需做出任何决定。 是 varargs。它是作为指定类型的数组接收的。你必须相应地记录它。目前,您将其记录为long[].toString().