SLF4J varargs Vs Arrays的问题

时间:2012-11-20 13:41:13

标签: slf4j

为什么org.slf4j.Logger使用varargs:

public void info(Marker marker, String format, Object... arguments);

但是org.slf4j.ext.LoggerWrapper和org.slf4j.cal10n.LocLogger都使用如下数组:

public void info(Marker marker, String format, Object[] argArray);

1 个答案:

答案 0 :(得分:1)

当使用Java 5+时,LoggerWrapper和LocLogger与varargs语法兼容,但它们也与Java兼容< 5.数组语法可以在旧版本的Java下编译和运行,同时在使用Java> = 5时仍支持varargs语法。

SLF4J API< 1.7使用了数组语法。对于API版本1.7,使用了varargs语法,这意味着它不能用于Java版本< 5。

您可以查看varargs and the '...' argument,了解更多有关其工作原理的示例以及您可能希望这样做的原因。