Java中是否有java.lang.String.format的替代品以使用通用占位符

问题描述

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

org.slf4j.Logger.error("Invalid value1={} for value2={}",value1,value1)

以下方法是否有类似的替代方法?我想要通用({})而不是类型专用的占位符。

String.format("Invalid value1=%d for value2=%d",value1)

解决方法

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

String.format("Invalid value1=%s for value2=%s",value1,value1)

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

,

您可以根据需要使用MessageFormat,尽管您需要指定参数编号:

MessageFormat.format("Invalid value1={0} for value2={1}",value2);