【问题标题】:Static import Long.parseLong in JavaJava 中的静态导入 Long.parseLong
【发布时间】:2019-10-10 12:56:24
【问题描述】:

今天在私有方法中,我使用了Long.parseLong()(全班只使用一次)和一些String 作为值。在同行评审中,同事写道,这个方法应该是static import,然后在没有Long. 的情况下调用。我问为什么,因为据我所知以及 https://stackoverflow.com/a/421127/4952262 中的内容在这种情况下我们应该使用 Long.parseLong() 而不是尝试保存 5 个字符。答案是parseLong 方法就在Java.lang.Long 包中,它是安全的,因为这个方法过去、现在和将来都在这个包中。是好方法吗?它真的让代码更具可读性吗?

【问题讨论】:

  • 我不确定在这个问题上是否有行业立场;这主要是一种风格和/或偏好决定。 “正确”的答案通常是这样的:在代码库中保持一致
  • 存在一些冗余,因为 parseInt、ParseLong、parseDouble 分别恰好位于 Int、Long 和 Double 中,它可以缩短算术表达式。但是我从未使用过它,或者(我承认)见过它。而我在单元测试中看到了许多静态导入。
  • 静态导入确实应该非常谨慎地使用,但parseLong 可能没问题,除非您的公司可能会编写自己的 parseLong 方法来做其他事情。作为一个反模式示例,我曾在一个以静态导入 everything 为指导的地方工作。我们的代码是of(...),但我们无法判断它是 Stream.of、Date.of、Instant.of、List.of 还是其他任何东西。每次看到都让我呕吐。

标签: java static-import


【解决方案1】:

这取决于你如何推断​​,我已经阅读了很多关于静态导入增加代码可读性的内容。 但是让我们考虑一个场景,你有两个类,即 A 类和 B 类。 认为这两个类都有类似的静态字段/方法,您想在第三个 C 类中使用它们。
现在它如何增加代码的可读性?

再次重申,我并不是在争论使用静态导入的错误或正确之处,但是是的,我确实相信在某些情况下这样做听起来不错,但在其他情况下可能不会。

注意: 无论如何,就我所知的性能而言,它没有任何区别。

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2014-06-14
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多