gpt4 book ai didi

java - 如何包装 Java String.format()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:30 25 4
gpt4 key购买 nike

我想在我自己的 Logger 类中包装 String.format() 方法。我想不出如何将参数从我的方法传递给 String.format()。

public class Logger
{
public static void format(String format, Object... args)
{
print(String.format(format, args)); // <-- this gives an error obviously.
}

public static void print(String s)
{
System.out.println(s);
}
}

最佳答案

您的代码有效。 vararg 或多或少只是 vararg 的句法装箱。

换句话说,以下两个语句实际上是相同的:

String.format("%s %s", "Foo", "Bar")
String.format("%s %s", new Object[] {"Foo", "Bar"})

您的代码中的 args始终是一个 Object[],无论您有 0、1、2 还是任何其他参数个数。

请注意,这是在编译时确定的,并查看对象的静态类型,因此 String.format("%s %s", (Object)new Object[] {"Foo", "Bar"}) 将导致数组被视为单个对象(在这种情况下会引发运行时错误)。

如果您的代码仍有问题,请检查您的示例是否与代码的工作方式完全相同。

关于java - 如何包装 Java String.format()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2984083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com