0

为什么 org.slf4j.Logger 使用可变参数,例如:

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);
4

1 回答 1

1

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

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

您可能会查看varargs 和 '...' 参数,以获取更多有关其工作原理以及您可能想要这样做的示例。

于 2013-05-31T03:53:01.673 回答