我今天早些时候在处理 String 和格式化,发现 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 异常/错误。
最佳答案
所有静态方法也可以在其类的实例上调用。
通常不推荐使用此功能(许多工具跟踪它)但这并不是真正的错误。
关于java - 字符串格式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12621464/