是否有String.format(...)的类型安全替代品

时间:2014-03-01 15:30:57

标签: java string

对于撰写错误,日志记录或任​​何其他String消息,可以使用String.format(...)方法。不幸的是,这种方法不是类型安全的,因此下面的源将抛出IllegalFormatException

String s = String.format("My message has %d characters !", "30");

除了StringBuilder类之外,还有其他任何组合此类消息的方法。

我个人认为使用StringBuilder实例更难以阅读撰写的消息。

1 个答案:

答案 0 :(得分:7)

仅使用%{s}格式说明符的String.format()实际上是类型安全的(类型opaque可能是一个更好的术语),因为每个对象都将实现toString()方法,甚至处理null对象。

当然,如果你没有实现toString(),你几乎无法控制字符串的实际格式......