java 中是否有 java.lang.String.format() 的替代方法来使用通用占位符

cyr*_*ony 1 java string-formatting

slf4j Logger 具有干净的格式化语法。(使用花括号)

org.slf4j.Logger.error("Invalid value1={} for value2={}", value1, value1)
Run Code Online (Sandbox Code Playgroud)

下面的方法有类似的替代方法吗?我想要一个通用的 ({}),而不是特定于类型的占位符。

String.format("Invalid value1=%d for value2=%d", value1, value1)
Run Code Online (Sandbox Code Playgroud)

khe*_*ood 5

您可以String.format与 一起使用%s

String.format("Invalid value1=%s for value2=%s", value1, value1)
Run Code Online (Sandbox Code Playgroud)

%s适用于所有类型,就像{}在记录器中一样。它将任何给定的参数转换为字符串,这似乎正是您的要求。