java - 字符串格式查询

标签 java string format

我今天早些时候在处理 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/

相关文章:

java - ArchUnit:检查包是否相互依赖的最优雅的方法

java - JOGL 的纹理加载

java - 在使用 Spring Batch 和 Spring Boot 时,如何始终为每次运行启动一个新的作业实例?

ruby - 为什么数字字符串比较会产生意外结果?

java - 为什么会打印异常?

javascript - AngularJS:用破折号格式化 5 或 9 位邮政编码

python - 在原生Python中解析DICOM文件

java - 复制构造函数和防御性复制

java - 将字符串值转换为变量名 |字符串值包含变量名

variables - 在 PhpStorm 中双击不选择美元 ($)?