为什么字符串的格式(对象...args) 定义为静态方法?
我想知道为什么Java 5及更高版本在类String中使用静态方法提供printf样式的格式化程序,如下所示:
public static String format(String format, Object... args)
而不是
public String format(Object... args)
这样我们就可以写来代替 get。"%02d".format(5)
05
String.format("%02d", 5)
我想如果我可以修改 String 类,我可以添加以下内容:
public String format(Object... args) {
return format(this, args)
}
以获得相同的结果。
我发现在C#中,还使用静态方法代替实例方法。
我想知道他们为什么决定这样做,但我没有做出解释。实例方法并返回 string 的新实例,因此它们应该对 执行相同的操作。trim
substring
format
此外,该类还使用以下命令:DateFormat
public final String format(Date date)
用于设置日期格式。因此,如果我们将 DateFormat 的实例视为格式化程序,则 String 的实例也可以用作格式化程序。
有什么想法吗?