String.format查询

时间:2012-09-27 12:31:54

标签: java string format

我今天早些时候正在弄乱字符串和格式化,并且发现了API奇怪。

通常在我使用

格式化字符串时
String.format("mystr %s", 1);

或类似的东西。

现在,此类static method也可以被此类的实例化对象访问。下面的代码显示了静态使用String.format并直接从对象使用format方法的结果。

@Test
public void test() {
    assertEquals("abc 123", String.format("abc %s", 123));
    assertEquals("abc 123", "abc".format("abc %s", 123));
    assertEquals("def 123", "abc".format("def %s", 123));
}

最后一个assertEquals()基本上覆盖了第一个“abc”字符串,我希望看到格式的签名。

我是否遗漏了使用实例化对象中的静态方法的一些时髦用法。或者只是可见,因为静态String.format()也是对String的实例化对象的访问?换句话说,API奇怪/错误。

2 个答案:

答案 0 :(得分:3)

也可以在类的实例上调用所有静态方法。

通常不建议使用此功能(许多工具都会跟踪它),但这不是一个错误。

答案 1 :(得分:0)

静态方法总是可以通过类实例(对象)访问,String.format没什么特别的。