语言做网站,专业的手机价格网站建设,室内设计效果图在哪里找,线上商城介绍JDK-8203630 [“为String :: format添加等效的实例方法”]假定“将String :: format实现为静态的参数似乎是可以静态导入 format方法#xff0c;因此其行为与C的sprintf比较 。” 在有关该主题的StackOverflow.com线程上 #xff0c; Brandon Yarbrough写道#xff1a;“通过… JDK-8203630 [“为String :: format添加等效的实例方法”]假定“将String :: format实现为静态的参数似乎是可以静态导入 format方法因此其行为与C的sprintf比较 。” 在有关该主题的StackOverflow.com线程上 Brandon Yarbrough写道“通过使该方法静态化您可以使用格式这对于习惯于printf() C程序员来说是非常熟悉和简洁的。” Yarbrough提供了一个代码示例然后得出结论“通过使用静态导入printf看起来几乎就像它们在C中一样。太棒了” 当我在JDK-8203630中阅读有关此内容的内容时我想知道为什么我在使用它时没有静态导入String.format 因为现在看来这样做很明显。 在本文中我将简要介绍一些我考虑过的个人理论以解释为什么我以及许多其他人并未考虑一致地静态导入String.format 。 当J2SE 5引入静态导入时 有关该功能的新文档提出了一个问题“那么什么时候应该使用静态导入” 它以强调的方式回答了自己的问题我没有加粗体 “ 非常谨慎 ”然后该段继续提供了更多有关静态进口的适当和不当使用以及过度使用静态进口的负面影响的详细信息。 尽管原始文档着重警告过度使用静态导入但是随着开发人员逐渐习惯了静态导入它们的使用确实在逐渐增加。 2012年我通过博客文章问道“ Java越来越接受静态导入吗” 那时我感到它们越来越被接受尤其是在单元测试环境中以及在专注于提供“ 流利 ” API的更现代的库和框架中使用它们时 。 仍然以某种方式我不认为始终将静态导入应用于我的String.format使用。 我不经常使用String.format 所以我认为也许我只是没有太多机会考虑这一点。 但是即使我使用的次数相对较少我也不记得曾经静态地导入过它。 当我进一步考虑这个问题时我意识到我可能不考虑静态导入String.format的主要原因与大多数开发人员没有考虑的原因相同大多数流行且易于使用的在线方法如何使用String.format示例请勿使用静态导入 在撰写涵盖某功能的博客或文章时尤其是在入门级别时不要进行静态导入之类的操作会很有用因为显式拼写出类名可以提高开发人员理解方法中的位置的能力。代码来自。 但是这也意味着如果给定的开发人员阅读了大量文章和帖子并且其中没有一个显示使用静态导入则该开发人员很容易使用所有这些示例中所示的API而无需考虑静态导入的可能性。 以下是有关使用String.format一些介绍性文章。 在撰写本文时他们还没有通过静态导入演示String.format使用。 我要强调指出这并没有脱离这些资源的质量 如果有的话其中的一些很棒。 相反这是用作解释为什么String.format似乎很少静态地以Java代码静态导入的证据。 适用于java.util.Formatter的JDK 10 Javadoc声明“类似于C的sprintf(3) 可以使用静态方法String.format格式化字符串”然后使用String.format提供代码示例而不是静态导入。 Baeldung的详细“ java.util.Formatter指南 ”提供了许多代码清单这些清单证明了String.format使用但是没有一个是静态导入的。 DZone详细的文章“ Java字符串格式示例 ”演示了如何使用String.format而不进行静态导入。 “ Java字符串格式示例 ”一文中的“ Java Code Geeks示例 ”以使用String.format而不静态导入的示例结尾。 最近发布的“ 使用String.format方法进行Java String格式化如sprintf ”提供了有用的讨论和示例但并未讨论静态导入String.format 。 GeeksForGeeks的“ 带示例的Java String format ”提供了String.format使用的多个示例但是没有一个是静态导入的。 “ Java字符串格式示例 ”提供了不使用静态导入而应用String.format多个示例。 “ 用示例解释的Java String format方法 ”不会在其多个示例中静态导入String.format 。 StackOverflow.com线程“如何用Java格式化字符串”中提供的示例不会静态导入String.format 。 “ Java String format方法 ”的String.format()的多个示例不会静态导入它。 以上文章中的许多示例都使用String.format()生成分配给局部变量的String 。 在这种情况下可以说静态导入的价值要小于在更大的代码行中使用它格式化String的价值。 例如静态导入String.format()更为“流利”这样当在一行代码中进行格式化时只需指定format()即可完成其他操作而不仅仅是将格式化后的字符串分配给局部变量。 这篇博文的主要目的是指出/提醒我们可以静态导入String.format从而使我们的代码更具可读性。 但是在关于该主题的OpenJDK core-libs-dev邮件列表的简短讨论中 还有其他一些有趣的观点我将在这里简要指出 JDK-8203630通过以下示例指出了在某些情况下实例方法如何使代码更具可读性 This result is %d.format(result); RémiForax指出了一些反对在String 中添加实例 format方法的参数 与static方法和实例方法相关联的问题在类中共享相同的名称。 无论实例 format方法是否出现在Java的String 有关JDK-8203444 JDK-8203630以及相关邮件列表讨论的内容 为我提供了一些思考的机会。 如果没有其他问题在考虑使用String.format时我绝对会更倾向于权衡其性能而在使用它时将更有可能静态导入它。 翻译自: https://www.javacodegeeks.com/2018/05/javas-string-format-can-be-statically-imported.html