关于表单的快速问题。
我正在记录各种错误消息,我想知道是否应该在日志调用中为消息创建一个新字符串,或者在我用来存储其他字符串常量的接口中创建一个常量字符串,然后引用它。 我使用的是代码分析器代码,它提到了后者说更好的做法是创建一个字符串常量并引用它,即使字符串只使用一次。 我只是想知道情况确实如此吗?
提前致谢
答案 0 :(得分:3)
我不确定您使用的分析工具或配置方式,但建议似乎对我无效。 Java编译器已经为你创建了字符串常量(当代码调用log方法时,它通常不会分配新的String实例),那么手动完成这项工作有什么意义呢?
如果将字符串常量放入接口,则可以在类之间共享它们,但不能按照您认为的方式进行共享:Java编译器会将常量的值复制到使用它的代码中(因此生成的字节代码)将不再有对接口的引用!)
我的建议:关闭这个误导性的警告。
答案 1 :(得分:2)
记录应该易于添加和删除;只需提供一个非常薄的层。然后可能会使用MessageFormats,当用常量名称替换时,它容易出错/不可检查。
此外,还会导入字符串常量,然后在常量更改时无法再检测到更改。
日志字符串也不是很严格,自己提供信息。
最好将这些字符串标记为不可国际化。