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

标签 java string

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

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

除了 StringBuilder 类之外,是否还有其他替代方法来编写此类消息。

我个人认为使用 StringBuilder 实例组合的消息会变得更难阅读。

最佳答案

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

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

关于java - 是否有 String.format(...) 的类型安全替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116325/

相关文章:

android - 如何忽略 Android Studio Log 中的所有硬编码字符串?

关于字符串连接的 Swift 2 到 3 迁移错误

Javascript 文本框值返回对象错误

java - 在java中打印一个三角形的字符

java - Kafka Streams API 中的 ArrayList Serde 问题

java - Google Guice 辅助注入(inject)对象为 null

ios - 我如何从字符串中获取一个整数?

java - 环境变量在 websocket 中不可用

java - 如何使用 equals() 创建唯一元素的 ArrayList

c - char *str ="STRING"和 char str[] = "STRING"之间的区别?