首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String.format查询

String.format查询
EN

Stack Overflow用户
提问于 2012-09-27 20:31:54
回答 2查看 561关注 0票数 1

今天早些时候,我在处理字符串和格式化时发现了一个奇怪的API。

通常,当我格式化字符串时,我会使用

代码语言:javascript
复制
String.format("mystr %s", 1);

或者类似的东西。

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

代码语言:javascript
复制
@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 /bug。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 20:33:12

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

通常不推荐使用此功能(许多工具都会跟踪它),但这并不是真正的bug。

票数 3
EN

Stack Overflow用户

发布于 2012-09-27 20:34:06

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12621464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档