|
|
1
2
这实际上是错误的。在运行时,所有字符串文本都由类加载器暂存。如果你有20个
Sonarint警告的真正原因是,具有相同字符串文字的多个副本可能会导致维护问题。如果你想改变
它对运行时性能没有影响,对编译速度的影响很可能是微不足道的。
不同风格的
那就是 肯定 意见问题。。。。在您介绍的示例中。 但是,如果字符串是供用户阅读的消息,则可能需要将其国际化。如果是这样,那么最好将字符串存储在(例如)属性文件中。。。并根据用户的首选语言使用不同的文件。 最后,假设您确实决定使用字符串常量(这是一个好主意),我不建议将它们都放在一个大的“常量”类中。根据它们的用途,在普通类和接口中定义它们。 |
|
|
2
1
重复使用相同的文本字符串不会产生内存开销,因为Java源代码中的所有文本字符串都是 interned 。Sonaralint警告您不是因为内存效率低下,而是因为存在错误风险和可读性降低。 使用整个类的静态导入的建议解决方案的问题是,当您稍后阅读使用这些常量的源代码时,您将不知道这些常量来自何处。这就是为什么通常首选“静态导入”命名字段的原因。但如果您有250个这样的常量,您可能不想向文件中添加250个静态导入行。
而不是命名常量
|
|
|
3
-1
重构
然后它包含如下常量
你可以使用
|